• struts2配置文件的位置


    struts2配置文件的位置

    在struts2中struts.xml配置文件的默认放在"/WEB-INF/classes"目录下,在项目中是src下面。如下图:


    通常我们项目开发中,配置文件会放到指定目录下。如何才能让struts.xml配置文件随意的放在指定目录下呢?

    其实struts2中支持struts.xml文件放到其它位置的,

    我们来看一下,struts2的过滤器

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    下面是一部分源代码:

    public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter {

        private PrepareOperations prepare;

        private ExecuteOperations execute;

        public void init(FilterConfig filterConfig) throws ServletException { }

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { }

        public void destroy() { }

    }

    在struts2的filter中有三个方法,这里我们只关心init()方法,init(FilterConfig filterConfig)有一个入参,这是我们猜一下,在web.xml中容器配置filter后,服务开启后j2ee容器首先会调用filter类的init方法将其。

    到这里我能猜出init(FilterConfig filterConfig)方法中的filterConfig参数一定是struts2的filter的初始化参数,struts2的filter默认会加载"/WEB-INF/classes"目录下的struts.xml文件。

    那么只要在j2ee容器加载struts2的filter是将struts.xml的路径付给init()方法即可。


    左图为我的项目的strus.xml要存放的位置。
    在web.xml中配置:
    <!-- struts2 过滤器 star -->
    <filter>
       <filter-name>struts2</filter-name>
       <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
       </filter-class>
       <init-param>
        <param-name>filterConfig</param-name>
        <param-value>/WEB-INF/config-common/struts.xml</param-value>
       </init-param>
    </filter>

    <filter-mapping>
       <filter-name>struts2</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>

    这样就可以了。

  • 相关阅读:
    顶目群定义及项目群管理
    项目管理与项目组合管理的不同
    IT项目经理:人际关系技能和领导技能的重要性
    IT 项目经理的职业生涯
    Sharepoint2010 中隐藏 "快速启动"与"最近修改'
    3 个基本的IT项目组合种类
    项目成功的标志及决定因素
    HDL,你们作对了吗?
    JAVA代码编写的30条建议
    八款开源 Android 游戏引擎
  • 原文地址:https://www.cnblogs.com/edison2012/p/2893053.html
Copyright © 2020-2023  润新知