`

Struts2 加载多个配置文件

 
阅读更多

Struts2 加载多个配置文件

 

方法1

struts.xml文件中 使用include方式 可以加载多个配置文件,(struts.xmlstruts-default.xmlstrut2默认自动加载的配置文件)

 

方法2

覆盖FilterDispatcher类的方法实现多个配置文件的加载

 

1.重写FilterDispatcher 类的三个方法,我的struts-*.xml的路径在WEB-INF/modules/struts文件夹下,JLTEnvironment类为我的应用的配置路径
public class JLTFilterDispatcher extends FilterDispatcher {
@Override
protected Dispatcher createDispatcher(FilterConfig filterConfig) {
Map<String, String> params = new HashMap<String, String>();
for (Enumeration e = filterConfig.getInitParameterNames(); e
.hasMoreElements();) {
String name = (String) e.nextElement();
String value = filterConfig.getInitParameter(name);
params.put(name, value);
}
// 加载modules下的struts配置文件
getStrutsConfig(params);
return new Dispatcher(filterConfig.getServletContext(), params);
}
  * 加载modules下的struts配置文件
private void getStrutsConfig(Map<String, String> m) {
String strutsPath = new String(
"struts-default.xml,struts-plugin.xml,struts.xml");
File f = new File(JLTEnvironment.getModulesHome()+"/struts");

if (f.getName().equals("struts")) {
File[] ff = f.listFiles();
if (ff != null && ff.length > 0) {
for (int i = 0; i < ff.length; i++) {
String fname = ff[i].getName();

if (fname.startsWith("struts-") && fname.endsWith(".xml")) {
strutsPath+=","+ff[i].getAbsolutePath();
}
}
}
}

m.put("config", strutsPath);

}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
//获得应用的路径
  ServletContext ctx = filterConfig.getServletContext();
  String home = ctx.getRealPath("/");
  home = home.replace('\\', '/');
  if (!home.endsWith("/")) {
  home = home + "/";
  }//初始化应用环境参数
JLTEnvironment.init(home, ctx);
super.init(filterConfig);
}

}
2.web.xml更改为
  <filter>
<filter-name>struts2</filter-name>
<filter-class>
com.jlt.core.JLTFilterDispatcher
</filter-class>
</filter>
3.这样,WEB-INF/modules/struts下的所有以struts-开关的以xml结尾的xml文件都会被自动加载进去,不用去改其它配置了,呵呵

<!--EndFragment-->

分享到:
评论

相关推荐

    Struts2属性文件详解

    该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开.该属性的默认值为struts- default.xml,struts-plugin.xml,struts.xml,看到该属性值,所以...

    Struts2\constant应用

    该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开。 该属性的默认值为struts-default.xml,struts-plugin.xml,struts.xml,看到该属性...

    spring管理struts的action的代码

    spring管理struts的action的代码 从类路径下加载spring的配置文件, 多个配置文件可以用逗号和空格区分 * classpath: 关键字特指类路径下加载

    struts自我学习过程程序以及说明

    AjaxTree.ftl(这里是换了个地方才可以的,放到WEB-INF下不行,因为配置文件会找不到) AjaxTree.jsp template.realajax包 AjaxTreeTheme.jsp (例子三) 配置dwr.xml和web.xml 运行 http://localhost:5858/start/dwr/ ...

    Java求职面试宝典各大公司常考知识点

    1.6. hibernate中一对多配置文件返回的是什么? 4 1.7. update()和saveOrUpdate()的区别? 4 1.8. hibernate拒绝连接、服务器崩溃的原因?最少写5个 4 1.9. hibernate如何管理缓存 4 1.10. 使用Hibernate的优点...

    Spring面试题

    ☆ Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 ☆ Spring AOP:通过配置管理特性,Spring AOP ...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    健身房管理信息系统设计.doc

    J2EE介绍 J2EE(Java 2 Platform, Enterprise Edition)是SUN公司定义的一个开放式企业级应用规范,他提供了一个多层次的分布式应 用模型和一系列开发技术规范,多层次分布式应用模型是根据功能把应用逻辑分成多个层 次...

    外文翻译 stus MVC

    Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains...

    JAVA上百实例源码以及开源项目

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    java开源包2

    [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的...

    JAVA上百实例源码以及开源项目源代码

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    J2EE应用开发详解

    118 8.3.5 Struts2配置文件 119 8.4 Action的配置方式 121 8.4.1 动态方法调用 121 8.4.2 设置action元素的method属性 122 8.4.3 使用通配符配置action 122 8.4.4 默认action 123 8.5 拦截器Interceptor 123 8.5.1 ...

    Spring入门到精通2017视频教程

    本次课程的主要内容:掌握系统框架设计原理,工厂模式,委托模式的实现,Spring的IOC依赖注入技术,Struts2,Hibernate与Spring的整合,ApplicationContext读取资源文件的3种方法,多个配置文件的加载与导入,静态...

    java面试题

    答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许其service方法,一个实例可以服务于多个请求,并且其实例一般不会被销毁,而CGI对每个请求都产生新的进程,服务完后就销毁,所以效率上...

    《MyEclipse 6 Java 开发中文教程》前10章

    10.2.5 如何加载多个Spring配置文件 210 10.3 开发Spring 1.2 AOP应用 211 10.3.1 开发Man对象 211 10.3.2 开发前置通知(Before advice)对象:FBI 212 10.3.3 装配拦截器和Bean 212 10.3.4 测试和运行 214 10.3.5 ...

Global site tag (gtag.js) - Google Analytics