• Struts配置文件以Spring的方式实现自定义加载


    在使用struts时,我们需要在web.xml中配置过滤器,同时我们需要配置struts的配置文件路径来加载项目中struts的相关配置信息。如果我们不配置路径的话,Struts会有一些默认的加载路径,比如项目根路径下的名为struts.xml的配置文件。

    但在实际项目中,struts配置的文件比较多,也不可能都放在项目的根路径下,一般是放在一个统一的目录进行管理,如(StrutsCfg目录),当配置文件多的话,有一种方法是在sturts的拦截器配置一个配置项

      <param-name>config</param-name>

      <param-value>配置文件名字,多个以逗号隔开</param-value>

    这里需要注意一下,当手动配置的话,struts不会默认加载struts默认的配置了。如struts-default.xml,struts-plugin.xml。具体代码如下

    所以以这种方式来自定义加载struts的配置文件显然是不好的。所以我们采用第二种方式,以Spring的方式加载配置文件。

    首先我们需要为struts提供一个自定义的配置加载项类

    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    <init-param>
    <param-name>configProviders</param-name>
    <param-value>这里自己定义一个类需要继承XmlConfigurationProvider</param-value>
    </init-param>
    </filter>
    我们自己定义一个类后,需要继承XmlConfigurationProvider,然后重写此方法

    可以看到方法的参数是一个字符串,这里我们用Spring提供的一个统一的资源访问接口ResourcePatternResolver,此接口支持classpath*这种通配符路径格式。所以项目如果有多个模板,就可以加载所有模块下的配置文件,具体用法如下

    这里的configFilePattern的路径为

    classpath*:strutsCfg/struts-*.xml

    总结:这种加载配置文件的方式即可以不影响struts默认配置文件的加载,也可以实现Spring通配符路径的加载,简单方便,也不用再struts的过滤器配置一大堆的配置了!
    
    
  • 相关阅读:
    Java 数组
    【转】Centos 设置IP地址的几种方式
    【转】CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
    【转】CentOS图形界面的开启与关闭
    【转】linux Centos 6.5 安装桌面环境GNOME
    VirtualBox 更改主机和虚拟机之间的鼠标切换热键
    【转】Virtualbox虚拟机配置安装CentOS 6.5图文教程
    0622 python 基础05
    0617 python 基础04
    0610 python 基础03
  • 原文地址:https://www.cnblogs.com/dreampig/p/9002770.html
Copyright © 2020-2023  润新知