方案一:
 
首先我们要明白struts2加载配置文件都是从它自己的jar包和\WEB-INF\classes两个默认的位置加载的,如果你想改变strusts2中的文件的默认加载路径,可以在web项目的web.xml配置过滤器的时候指定。

如(配置过虑器的部分代码):
   
<filter>
     
<filter-name>struts2</filter-name>
        
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>       

       
<init-param>

<param-name>config</param-name>
          
<param-value>struts-default.xml,struts-plugin.xml,../STRUTS-XML/struts.xml
</param- value>
     
</init-param
>
   
</filter>
我在这里是把struts.xml放在
WEB-INF\STRUTS-XML\struts.xml

  
上面加载struts.xml是使用的相对路径(相对于\WEB-INF\classes目录".."后退退到WEB-INF目录);

----------------------------------------------------------------------------------------------

如果把struts.xml放在
src\STRUTS-XML\struts.xml 中,这时既可以使用相对路径,又可以使用绝对路径 ,分别如下:
  绝对路径:<param-value>struts-default.xml,struts-plugin.xml,/STRUTS-XML/struts.xml
</param- value>
            
这时“/”就是相当于classes目录
  相对路径:<param-value>struts-default.xml,struts-plugin.xml,STRUTS-XML/struts.xml
</param- value>
         
(这时是相对于\WEB-INF\classes目录

####要注意的是,如果你设置了<param-name>config</param-name>参数,那么struts-default.xml等原来struts2默认加载的文件你也要指定,否则它好像不会自动加载,会出错

也可以加载到struts.xml中(<include
file="struts-default.xml"></include>)

(另外
struts-default.xml,struts-plugin.xml 是不用特殊指定的 struts.xml放到根目录下就可以
在struts.xml 里include 其他的struts.xml 而struts.xml
主要是进行一些配置的(比如字符类型等))
3.而且使用<include
file="../STRUTS-XML/user.xml"/>标签时也要系一个都要指定相对的路径和struts.xml指定一样

还有一种不用这样配置的方法就是使用<include
file="/STRUTS-XML/user.xml"/>
也就是struts.xml放在默认的位置,只是其它的配置放到其它的地方
如:

XML code
<struts> <constant name="struts.enable.DynamicMethodInvocation"
value="false" /> <constant name="struts.devMode" value="false" /> <include file="STRUTS-XML/user.xml"/></struts>

我就是把user.xml文件放到了\WEB-INF\classes\STRUTS-XML目录下
这样也可以达到统一管理配置文件,也不用配置<param-name>config</param-name>参数

方案二:
    和设置struts.properties的自定义路径相同:
   
博客地址:http://blog.sina.com.cn/s/blog_7ffb8dd50101402x.html

struts2设置加载非默认路径的struts.xml文件解决方案的更多相关文章

  1. Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新

    Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新 摘自: https://blog.csdn.net/johnson_moon/article/details/7887449 ...

  2. struts2设置非默认路径的struts.properties以及.properties文件解决方案

    一.web应用的classpath简介    classpath路径在每个J2ee项目中都会用到,即WEB-INF下面的classes目录,所有src目录下面的java.xml.properties等 ...

  3. Mysql加载配置默认路径

    查看命令 mysqld --verbose --help|grep "Default options" -n1 输出结果 11-12:Default options are rea ...

  4. struts2——配置struts.xml文件

    在struts2框架中struts.xml是应当放到src的根目录,程序编译后会将struts.xml放到WEB-INF/classes目录下. Struts2在web.xml中的一般配置如下: &l ...

  5. js设置加载进度提示

      CreateTime--2017年8月23日09:17:46Author:Marydon js设置加载进度提示 第一部分:CSS /*加载样式*/ .Loading { position: abs ...

  6. struts2配置文件加载顺序

    struts2配置文件加载顺序: struts-default.xml/ struts-plugin.xml/ struts.xml/ struts.properties/ web.xml

  7. 设置 Jupyter notebook 工作空间 / 默认路径

    常用的启动 Jupyter notebook 的两种方式是:命令行窗口启动和开始菜单启动.设置 Jupyter notebook 的默认路径也有两种常用方式: 修改配置文件 设置快捷方式. 1 通过修 ...

  8. Angular 使用 frame 加载网络资源显示路径不安全问题

    Angular 使用 frame 加载网络资源显示路径不安全问题 做项目的时候,angular 使用 frame 加载网络pdf文件的时候出现 unsafe value 问题,路径不安全.解决办法. ...

  9. Java 加载、编辑和保存WPS表格文件(.et/.ett)

    WPS表格文件是金山开发的专门用于处理表格数据的Office工具,属于WPS Office中WPS文字.WPS表格和WPS演示三大功能模块之一.通常以.et和.ett作为文件后缀.我们在通过后端来操作 ...

随机推荐

  1. ASP.NET MVC Model验证

    http://www.wyjexplorer.cn/Post/2012/8/3/model-validation-in-aspnet-mvc3 ASP.NET MVC3中的Model是自验证的,这是通 ...

  2. ECMAScript新特性【一】--Object.create

    Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数: prototype 必需.  要用作原型的对象. 可以为 nu ...

  3. hello-循环神经网络(RNN)原理

    主要的应用:机器翻译,自然语言处理,文本处理,语音识别, 图像描述生成 (Generating Image Descriptions), 图像问答QA.... 循环神经网络(RNN)原理通俗解释 1. ...

  4. Backup and restore of FAST Search for SharePoint 2010

    一个同事问我一个问题: 如果FAST Search for SharePoint 2010被full restore到了一个之前的时间点, 那么当FAST Search重新开始一个增量爬网的时候, 会 ...

  5. Elasticsearch 数据搜索篇

    curl 'localhost:9200/_cat/indices?v' health index pri rep docs.count docs.deleted store.size pri.sto ...

  6. C#基础视频教程1 背景知识和安装配置

    安装过程比较简单,用虚拟光驱工具加载ISO文件,然后打开EXE安装即可,主要使用VS2013(VS2015也出来了,但是用的还不算多)     建议设置为深色(比较容易看清)   建议显示行号,不要自 ...

  7. python------@staticmethod和@classmethod的作用与区别

    一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某些应 ...

  8. DB中耗时的 存储过程 及执行详细情况

    SELECT a.object_id, a.database_id, OBJECT_NAME(object_id, database_id) 'proc name', a.cached_time, a ...

  9. sql删除数据库所有表

    use 数据库名(是要删除表的所在的那个数据库的名称) GO ) begin SELECT @sql='drop table ' + name FROM sysobjects WHERE (type ...

  10. llinux环境变量查看和修改

    查看全局环境变量:env 查看所有环境变量:set 删除一个变量:unset [变量名] #只针对当前会话 设置一个变量:name=songjiankang export name #将这个变量提升为 ...