在struts2框架中struts.xml是应当放到src的根目录,程序编译后会将struts.xml放到WEB-INF/classes目录下。
Struts2在web.xml中的一般配置如下:
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
根据配置就会先后加载struts-default.xml、struts-plugin.xml、然后自动加载classes目录下的struts.xml 。
但是有时为了协作开发或方便管理,有时可能需要把struts.xml放到其他位置,如下图所示:
这个时候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,config/struts2/struts.xml </param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
我们可以通过上述web.xml的配置找到struts.xml文件的位置,但在这里有人可能会疑问了,那为什么要struts-default.xml也需要指定呢?因为我们改变了struts.xml文件的位置后,如果不手动指定,就不会自动加载。就会出现下面的异常:
所以需要特别注意struts2默认加载的文件,如struts-default.xml,struts-plugin.xml都需要在
<param-value/>中重新指定一下。
温馨提示:在上述的程序中,大家可能注意我重新指定了struts-default.xml而没有写struts-plugin.xml,那是因为我这个项目没有用到插件,引用的是项目的基本jar,基本Jar中是没有struts-plugin.xml配置文件的。这个配置文件是在插件jar包中。如图:
任意解压缩一个Jar包即可发现:
所以我们需要清楚虽然配置文件的加载顺序是struts-default.xml、struts-plugin.xml、struts.xml,但是如果没有插件的应用那么就是struts-default.xml、struts.xml的顺序。这就是上述显性指定时没有指定struts-plugin.xml的原因。
当然如果不想在web.xml文件中指定struts-default.xml,struts-plugin.xml的话,也可在struts.xml文件中通过include将原有配置文件包含进来。
<struts> <include file="struts-default.xml" ></include> <package name="example" namespace="/" extends="struts-default"> <action name="login" class="com.yanln.test.action.LoginAction"> <result name="success">success.jsp</result> </action> </package> </struts>
注意:每个人的编程习惯是不一样的,有的人可能把配置文件习惯如下方式放置
那么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,../config/struts2/struts.xml </param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
主要原因是struts2默认会到WEB-INF/classes目录下去找配置文件。
相关推荐
struts.properties文件是Struts 2框架的一个重要配置文件,它位于Web应用的WEB-INF/classes目录下或CLASSPATH路径下。这个文件定义了一系列框架的属性,允许开发者调整Struts 2的行为以适应特定的应用需求。例如,你...
在Struts中,`struts.xml`和`struts.properties`文件是两个核心的配置文件,它们分别负责定义应用的行为和设置全局属性。 **`struts.xml`配置详解** `struts.xml`是Struts 2框架的核心配置文件,用于定义动作映射...
结果可以是相对路径或绝对路径,根据配置决定是否需要添加前缀(如`/WEB-INF/pages/`)。 6. **拦截器和拦截器栈** 拦截器在Action调用前后执行,用于实现通用功能,如权限检查、日志记录等。`<interceptor>`定义...
- `<constant>` 用于设置Struts2框架的配置常量,可以改变框架的默认行为。 例如,在`struts2-config`这个压缩包中,可能包含了自定义的Struts2配置文件,用于定义应用的特定行为。开发者可以根据实际需求,在...
### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...
在使用Struts框架时,`struts.xml`配置文件起着至关重要的作用,它是整个应用的配置中心,定义了动作映射、拦截器、结果类型等核心组件。为了正确运行Struts2框架,我们需要准备一系列的JAR文件,这些库文件提供了...
**struts.configuration.xml.reload** - **功能**:是否在每次HTTP请求时重新加载`struts.xml`文件,默认为`false`。 - **示例**:设置为`true`,则每次请求都会检查`struts.xml`文件是否有变化。 ##### 25. **...
### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...
4. struts.configuration.xml.reload:这是一个布尔值,用于确定是否加载XML配置文件。如果设置为true,Struts2将加载XML配置文件;否则,不加载。 5. struts.continuations.package:这是一个包名,包含使用Rife ...
6. **Action的映射(标签)**:在Struts2.0中,`web.xml`里不直接配置Action,而是通过配置文件(如struts-default.xml, struts-plugin.xml, struts.xml等)来定义Action的配置。 除了上述基本配置外,`web.xml`还...
在Struts2中,`struts.xml`文件是核心配置文件,用于定义应用的行为、动作映射、结果类型、拦截器等。这篇博文主要探讨了`struts.xml`文件的元素结构,下面我们将详细解析这些关键元素。 首先,`struts.xml`文件...
`struts-default.xml`通常包含了Struts2的默认配置,包括一些预定义的拦截器和Action。 4. **package标签**: `<package>`定义了一个行为模块,它是一系列Action的集合。每个`package`都需要一个唯一的名字,通过`...
Struts 2.0是Java Web开发中广泛使用的MVC框架,它的核心在于`struts.xml`配置文件。这个配置文件扮演着应用的中枢角色,负责定义动作(Actions)、结果(Results)、拦截器(Interceptors)等关键组件,以及它们...
另一种方法是在`struts.xml`配置文件中添加一个常量元素来设定这个值,如下所示: ```xml <constant name="struts.multipart.saveDir" value="/tmp"/> ``` 和上面一样,这里的`/tmp`应该替换为实际的临时文件...
每个Action类都与一个或多个URL路径关联,当用户发起请求时,Struts2会根据配置文件(通常是struts.xml)来决定哪个Action来处理请求。 **Hibernate** 是一个流行的关系型数据库ORM框架,它简化了Java应用中的数据...
这里,`config`参数值包含了多个配置文件的路径,包括默认的`struts-default.xml`和`struts-plugin.xml`,以及自定义的`../struts.xml`。`../struts.xml`表示相对于`WEB-INF/classes`目录的上一级目录,这样就指定了...
`struts.properties`文件通常位于项目的`WEB-INF/classes`目录下,这样可以确保它被包含在类路径(CLASSPATH)中,以便Struts2能够正确加载并解析其中的配置信息。 ### 核心配置项详解 #### struts.action....
《Web.xml配置详解》 在Web开发中,`web.xml`文件是Web应用程序的部署描述符,它是Java Servlet规范的一部分,用于配置Web应用的各种组件,如Servlet、过滤器、监听器等。理解并熟练掌握`web.xml`的配置对于任何Web...
综上所述,Struts2的属性配置涉及到`struts.xml`、`struts.properties`以及`web.xml`三个主要文件,每个都有其特定的使用场景和优先级。理解和熟练掌握这些配置方式,对于构建高效、可维护的Struts2应用至关重要。
Struts2是一个强大的MVC框架,它以XML配置文件为核心,允许开发者定义应用程序的行为和结构。在Struts2中,XML配置文件(通常命名为struts.xml)是整个框架的基石,它负责设置Action、拦截器、结果页面以及其他关键...