配置web.xml,配置Struts2的过滤器,例如:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
|
Struts.xml 主配置文件:
在web应用程序中我们都是使用部署描述符来初始化一些资源如servlet、过滤器、监听器等等,这个部署描述符就是那广为人知的web.xml了。同样的,框架也使用一个配置文件来初始化它自己的资源,这些资源主要包括:
1.拦截器(Interceptor):对请求进行预处理和后加工;
2.Action Classes:负责调用商业逻辑和数据访问层;
3.Results:负责返回视图(view),如JSP页面等等;
Bean标签配置
Struts2是个可以扩展的框架,框架的核心组件都是可以配置的,这些组件可以通过Struts2自身的依赖注入容器来装配。开发时可以自己编写组件来扩展框架功能,然后通过bean元素来配置组件。
在Struts-default.xml文件定义了struts2框架中可配置的组件。
bean元素属性:
属性名称
|
是否必须
|
描述信息
|
class
|
是
|
bean的类名
|
type
|
否
|
bean实现的主要接口
|
name
|
否
|
bean的名字,在具有相同Type属性的bean中,该名字必须唯一
|
scope
|
否
|
bean的作用域,是default,singleton,request,session,thread中的一个
|
static
|
否
|
是否注入静态方法,如果指定了type,static就不能为true
|
optional
|
否
|
Bean是否可选
|
package标签配置:
<package … />标签是用来把那些需要共享的通用信息——例如拦截器堆栈或URL命名空间——的配置组织在一起的。它通常由Action的配置组成,但也可以包括任何类型的配置信息。它还可以用来组织管理各自独立的功能——它们也可以被进一步拆分到不同的配置文件中。
Struts2中的包类似于java中的包,提供了将action、result、拦截器和拦截器栈组织成一个逻辑单元的一种方式,从而为你简化了维护工作,提高了重用性。
在struts.xml文件中,与web应用相关的设置都在包中定义,每一个包中都包含了将要用到的action、result、拦截器和拦截器栈。
属性名
|
是否必须
|
描述信息
|
name
|
是
|
package的唯一标识,不允许同名
|
extends
|
否
|
当前这个Package所继承的Package的名字,被继承的Package中所有的配置信息(包括Action的配置)都可以在新的命名空间下,新的Package里面被使用。
|
namespace
|
否
|
命名空间提供了从URL到Package的映射。也就是说,如果两个不同的Package,其命名空间分别为“package1”和“package2”,那么URL差不多就是“/myWebApp/package1/my.action” 和
“/myWebApp/package2/my.action”这样的形式。
|
abstract
|
否
|
声明包为抽象的,如果这个属性的值为“true”,那么这个Package就只是一个配置信息的组合,也就无法通过Package的名字来访问其中配置的Action。
|
Include标签配置:
<include … /> 是<struts>标签的一个子标签,它可以把其他配置文件导入进来,从而实现Struts2的模块化。它的“file”属性定义了要导入的文件的名称——该文件要和“struts.xml”一样有着相同的结构。在大型项目开发中,可以将项目分解为多个小模块,每个模块独立开发和管理。我们可以为每个模块提供一个配置文件,然后对其进行配置,然后在struts.xml中使用include元素包含这些配置文件。例如:
<include file="struts-chat.xml" />
<include file="struts-hangman.xml" />
<include file="struts-continuations.xml"/>
<include file="struts-tags.xml"/>
<include file="struts-validation.xml" />
|
当我们导入文件时,一定要注意导入的顺序。因为从文件被导入的那个点开始,该文件中的信息才能被访问到,也就是说,如果要使用另外一个文件中所定义的标签,那么该文件就必须要在被引用之前就配置好。
Bean的两种配置方法
1) 框架的IoC容器创建bean的实例,然后将该实例注入到框架的内部对象中。第一种做法可以称为对象注入,它通常要用到bean的type属性,告诉容器这个对象实现了哪个接口,如果自己创建了ObjectFactory,则可以在struts-default.xml中作如下配置:
<struts>
<bean type="com.opensymphony.xwork2.ObjectFactory"
name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
</struts>
|
2) 通过bean的静态方法向bean注入值第二种做法使用值注入,允许不创建bean,而让bean接受框架的常量。Bean使用值注入,必须使用static属性,并将该属性设置为true。例如:struts-default.xml文件中可以作如下配置:
<bean class=“com.opensymphony.xwork2.ObjectFactory” static=“true”/>
|
constant标签
我们可以通过定义一些能够改变框架和插件行为的关键设置来定制我们struts应用程序,而这些设置就是常量。常量扮演了两个关键的角色:首先它们被用来覆盖一些原有的默认设置,例如上传文件的最大容量、框架是否处于开发模式等等;其次,常量还用来指定在一个类型(type)的多个实现中,哪个bean应该被选中。
常量可以定义在多个文件中,默认情况下我们按照下面的顺序来寻找常量,后面的将覆盖前面的设置:
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
前3个xml文件的格式是一样的,因为它们使用同一个DTD文件,在xml文件中Constant元素有两个必须的属性:name和value;在struts.properties文件中,每一个entry都被视为一个常量;在web.xml文件中FilterDispatcher的初始化参数被载入为常量。
下面分别给出3中常量形式的例子。
struts.xml文件中常量
<struts>
<constant name="struts.devMode" value="true" />
</struts>
|
struts.properties文件中常量
web.xml文件中常量
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
</filter>
|
分享到:
相关推荐
在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
5. **简化配置**:通过插件,开发者不再需要在struts.xml或web.xml中显式配置Action的类名和实例,只需在Spring配置文件中定义Bean即可。 6. **提高代码可测试性**:由于Action由Spring管理,可以更容易地进行单元...
struts2-core-2.2.1-sources.jar 源码,学strut2源码时能用到的
在使用Struts2 Spring Plugin时,开发者需要在Struts配置文件(struts.xml)中添加必要的配置,声明插件并指定Spring应用上下文的位置。这样,当Struts2框架处理请求时,它会查找并使用Spring容器中的Action实例。 ...
Struts2 JSON Plugin是Apache Struts框架的一个...通过配置"struts-plugin.xml",使用自定义的TLD标签,以及利用提供的类和接口,开发者可以有效地集成JSON支持到他们的Struts2应用中,提升Web应用的动态性和交互性。
在本文中,我们将深入探讨Struts2版本2.1.6中的核心jar包以及如何调整`web.xml`配置文件以实现正确部署。 首先,Struts2的核心jar包是框架运行的基础,它们提供了Action映射、拦截器、结果类型和其他关键功能。对于...
struts-config.xml struts标准配置文件 struts-config
2. 在`struts.xml`配置文件中启用插件: ```xml <constant name="struts.plugin.packages" value="org.apache.struts2.sitemesh"/> ``` 3. 配置Sitemesh的全局装饰器(可选): 在`web.xml`中添加以下配置: ``...
### Struts框架中struts-config.xml文件配置详解 #### 一、引言 在Java Web开发领域,Struts是一个非常重要的MVC(Model-View-Controller)框架,它极大地简化了Web应用程序的开发过程。而在Struts框架中,`struts...
struts2-convention-plugin-2.3.1.jar,使用注解的方式代替xml配置action,必须要引用这个包。
导入struts2-spring-plugin包,在web.xml中设置spring的监听器, spring监听器对应的API类为:org.springframework.web.context.ContextLoaderListener。 struts2-spring-plugin包为我们将struts2的对象工厂设置为...
4. **配置管理(Configuration Manager)**:Struts2的配置管理器负责读取配置文件(如struts.xml),并将配置信息加载到内存中。这部分代码主要位于`com.opensymphony.xwork2.config`包下,包括`Configuration`接口...
- 配置Web.xml以启用Struts2过滤器。 - 创建视图页面,如JSP,使用Struts2标签库。 通过深入学习和实践,开发者可以充分利用Struts2的优势,构建高效、可维护的Web应用。不过,值得注意的是,尽管Struts2在过去的几...
使用Struts 1.3.8时,开发者需要配置web.xml和struts-config.xml,定义ActionServlet、Action、ActionForm等元素。此外,还需要编写ActionForm类,实现业务逻辑的Action类,以及使用JSP和Struts标签创建用户界面。 ...
- `WEB-INF/web.xml`:Web应用的部署描述符,配置Struts2的前端控制器Servlet。 - `struts.xml`:Struts2的配置文件,定义Action和相关配置。 - `src/main/java`:存放Action类和其他Java源代码。 - `src/main/...
1. `struts2-core.jar`:这是核心框架的主文件,包含了Action、Result、Interceptor等核心组件的实现,以及Struts2的配置机制。 2. `struts2-convention-plugin.jar`:这是一个插件,它提供了自动配置的能力,允许...
9. **xercesImpl.jar** 和 **xml-apis.jar**:XML解析相关的库,用于处理XML文档。 10. **jstl.jar** 和 **standard.jar**:JSTL(JavaServer Pages Standard Tag Library),用于JSP页面的标签库。 在使用"struts-...
struts2自带的json转换 倒入jar文件 struts.xml中 <package ......extends="json-default" <result type="json"/>
Struts2是一款非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,便于开发者构建可维护性和可扩展性良好的Web应用程序。在Struts2的生态系统中,`struts2-convention-plugin`是一个重要的组件...
- 接着,在`web.xml`文件中配置Struts2的过滤器。例如,定义名为`struts2`的过滤器,并指定过滤器类`org.apache.struts2.dispatcher.FilterDispatcher`,然后将这个过滤器映射到所有URL上。 - 创建`struts.xml`...