zoukankan      html  css  js  c++  java
  • 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>

    这样就可以了。

  • 相关阅读:
    自定义滚动条原理
    多个轮播图或者选项卡显示在一个页面是,使用代码重用
    浮动与清除
    cni 添加网络 流程分析
    《MapReduce: Simplified Data Processing on Large Cluster 》翻译
    OpenStack overview 笔记
    docker containerd shim分析
    docker containerd 中的create 容器操作
    MIT jos 6.828 Fall 2014 训练记录(lab 6)
    docker containerd中的容器操作
  • 原文地址:https://www.cnblogs.com/edison2012/p/2893053.html
Copyright © 2011-2022 走看看