<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,/WEB-INF/struts.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
相信大家一看就明白了,因为struts-default.xml中定义了struts-default这个包
另外,为什么参数的名字叫config,而且三个配置文件名之间可以用“,”号来分隔呢,总不能瞎猜吧。
是这样的,FilterDispatcher这个Filter的init()方法中,需要初始化一个叫做Dispacher的类,源码如下:
/**
* Initializes the filter by creating a default dispatcher
* and setting the default packages for static resources.
*
* @param filterConfig The filter configuration
*/
public void init(FilterConfig filterConfig) throws ServletException {
try {
this.filterConfig = filterConfig;
initLogging();
dispatcher = createDispatcher(filterConfig);
dispatcher.init();
dispatcher.getContainer().inject(this);
staticResourceLoader.setHostConfig(new FilterHostConfig(filterConfig));
} finally {
ActionContext.setContext(null);
}
}
画红线的部分表明这个方法的主要作用就是初始化一个Dispacher类。
好,现在进入这个类看看。其中有这么个常量:
private static final String DEFAULT_CONFIGURATION_PATHS = "struts-default.xml,struts-plugin.xml,struts.xml";
再看该类里边的这个方法:
private void init_TraditionalXmlConfigurations() {
String configPaths = initParams.get("config");
if (configPaths == null) {
configPaths = DEFAULT_CONFIGURATION_PATHS;
}
String[] files = configPaths.split("\\s*[,]\\s*");
for (String file : files) {
if (file.endsWith(".xml")) {
if ("xwork.xml".equals(file)) {
configurationManager.addConfigurationProvider(new XmlConfigurationProvider(file, false));
} else {
configurationManager.addConfigurationProvider(new StrutsXmlConfigurationProvider(file, false, servletContext));
}
} else {
throw new IllegalArgumentException("Invalid configuration file name");
}
}
}
大家只看我用特殊颜色标识出来的内容就全都明白了吧。
分享到:
相关推荐
例如,你可以通过更改struts.locale属性来设置应用的默认区域设置,或者通过struts.i18n.encoding来设定Web应用的默认字符编码,这对于处理中文请求参数尤其重要。 struts.properties中的属性也可以在web.xml或...
5. **struts.action.extension**: 行动映射的扩展名,默认是`action`,但可以根据需要修改。 6. **struts.enable.SlashesInActionNames**: 是否允许URL中的斜杠,设为`true`启用。 除了这些基本配置,`struts....
它提供了全面的API,可以方便地读取、写入、修改和遍历XML文档。下面我们将详细介绍如何利用Dom4j解析`struts.xml`文件中的关键元素。 首先,导入必要的库,包括Dom4j库和其他Struts2依赖。在你的项目中,确保添加...
开发者可以根据实际需求,在Struts.xml中添加、修改或删除上述元素,以实现对请求处理、视图展现和异常处理的精细控制。 通过阅读链接中的博客文章(http://blog.csdn.net/jiajia333666/article/details/47979919)...
然后,你需要修改`struts.xml`文件中DTD的引用,将URL路径更改为本地路径,例如`/WEB-INF/classes/struts-2.0.dtd`。这样,XML解析器将从本地读取DTD文件,避免了网络依赖。 2. **在IDE中配置XML Catalog**: 对于...
### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...
`dom4j`是一个强大的Java XML API,它提供了一种灵活的方式来读取、写入、修改以及操作XML文档。在解析`struts.xml`时,dom4j能帮助我们高效地遍历XML节点,获取或设置属性值,以及创建对象模型来表示配置文件的结构...
### Struts2属性文件struts.xml的配置 在Java Web开发中,Struts2框架作为MVC模式的一种实现,提供了一种简洁的方式来构建应用程序。其中,`struts.xml`是Struts2的核心配置文件,用于定义项目的包、常量、拦截器等...
以下是Struts2.5版本中`struts.xml`和`web.xml`配置的更改方法: **1. web.xml中的核心过滤器修改** 在Struts2.5版本中,核心过滤器的全类名发生了变化。原来的过滤器类名为`org.apache.struts2.dispatcher.ng....
Struts的配置文件通常命名为struts-config.xml,它是整个Struts应用的核心配置文件,通过定义一系列的XML元素来设定框架的不同功能和行为。下面将详细介绍struts-config.xml中8个主要配置元素的功能和使用方法。 1....
Struts是Java Web开发中的MVC框架,它通过Struts.xml配置文件来定义控制器的行为。在Struts2中,DelegatingActionProxy是Action代理的一种实现,它主要用于动态地加载和调用实际的Action类,实现了Action的AOP(面向...
#### struts.configuration.xml.reload **含义**:控制是否重新加载XML配置文件。 **示例**:如果设置为`true`,则每次应用程序启动时都会重新加载XML配置文件;若为`false`,则只在启动时加载一次。 **应用场景*...
配置Struts2时候,需要配置文件,可讲该文件直接拷入到项目中,再针对自己的项目进行合适的修改也就是一个简单的模版而已
总结一下,当遇到Struts2配置文件位置更改问题时,应遵循以下步骤: 1. 确保新的`struts.xml`文件路径是相对于`WEB-INF/classes`目录的。 2. 更新`web.xml`中的`StrutsPrepareAndExecuteFilter`过滤器配置,通过`...
在Struts2中,配置文件起着至关重要的作用,其中`struts.xml`用于管理Action映射和Result定义,而`struts.properties`文件则用于定义框架的全局属性。这个文件是基于Properties格式的,存储了一系列键值对,用于定制...
在这个场景中,我们关注的是SSH中的Struts框架和SSH集成代理1.2版的第二种搭配方式,以及如何在`struts.xml`配置文件中使用`DelegatingActionProxy`代理。 首先,让我们深入理解SSH框架的各自职责。Spring框架作为...
使用myeclipse8.5搭建SSH后,将struts.xml和applicationContext.xml移动到别的地方,示例中为webroot下的config文件夹中,web.xml中需要做的修改示例。其中对于返回上一层方式不同的myeclipse可能不同,如有的用../...
`struts.configuration.xml.reload` - **描述**:控制是否重新加载XML配置文件。 - **示例**:可以设置为 `true` 或 `false`。 - **作用**:当开发人员更改了配置文件后,是否希望Struts自动重新加载这些文件。这...
在Struts2框架中,`validation.xml`是用于定义验证规则的重要配置文件。根据所提供的信息,我们可以了解到文章主要探讨了Struts2中两种不同的`validation.xml`配置方式,并且通过一个具体的例子进行了说明。下面将对...