Struts.xml
包含配置
在默认的情况下,
Struts2
将自动加载放在
WEB-INF/classes
路径下的
struts.xml
文件。大部分应用里,随着应用的规模的增加,系统的
Action
数量大量增加,导致了
struts.xml
配置文件变得非常臃肿。
为了避免这种情况,可以将一个
struts.xml
文件分解成多个配置文件,然后在
struts.xml
文件中包含其他配置文件。比如说:在
struts.xml
文件中使用以下配置方式
<include file=”struts-mod1.xml” />
通过这种方式提供了一种模块化的方式来管理
struts.xml
文件。
另外,在
core
的根目录下有一个
struts-default.xml
文件,注意,这个文件是自动加载的,不需要在我们的
struts.xml
文件中用
include
导入。
Bean
的配置
一般这个元素不需要我们进行配置,只是需要重新定义
struts2
的核心组件的时候才需要使用到这个元素。
Struts2
框架是一个可以高度扩展的框架,框架的大部分核心组件,都是通过
IOC
容器来进行管理的。因此,允许开发者可以很方便的提供自己的组件实现类,并将组件类部署到
struts2
就
OK
了。
这个标记很不常用,如果需要可以查看帮助。
不过这里举个例子:
<bean type=”com.opensymphony.xwork2.ObjectFactory” name=”caFactory” class=”cc.dynasoft.MyObject” />
以上代码的作用是使用一个自己定义的
ObjectFactory
来替换了
struts2
内置的
object
。
常量配置
Struts
有一个属性文件,
struts.properties
,实际上这个配置文件是指定
struts2
的属性。而常量配置就是指定
struts2
属性的一种方式。例子:
<constant name=”struts.custom.i18n.resources” value=”message” />
以上用于指定国际化资源文件的前缀名是
message
,当然也可以在
struts.properties
中配置,如下:
struts.custom.i18n.resources=message
也可以在
web.xml
中进行配置:
作为
FilterDispatcher
的
init-param
<param-name> struts.custom.i18n.resources</param-name>
<param-value>message</param-value>
以下是加载
struts2
常量的搜索顺序:
1、
struts-default.xml
中
2、
struts-plugin.xml
中
3、
struts.xml
中
4、
struts.properties
5、
web.xml
中
包配置
Struts2
使用
package
来管理
Action
和拦截器等。配置该包时,必须指定一个
name
属性,用于指定包名,可以指定一个可选的
extends
属性,是另一个包的名字,子包可以继承父包的拦截器,拦截器栈、
action
等配置。除此之外,
struts
还提供了一个抽象包,抽象包的含义是该包不能有
action
的定义。设置
abstract=”true”
说明这是一个抽象包。
以下是一个例子:
<package name=”mod1” extends=”struts-default” />
其中
struts-default
是
struts-default.xml
提供的包。
另一个比较重要的概念就是命名空间:
考虑在一个
web
应用中需要同名的
action
,
struits2
以命名空间的方式来管理
Action
,同一个命名空间不能有同名的
Action
,不同的命名空间可以有同名的
Action
。如果不指定命名空间,则默认的命名空间是
””
,指定了命名空间之后,
Action
的
URL
应该是命名空间
+Action
名。
比如说:
<action name=”register” extends=”struts-default” namespace=”/user” >
……
</action>
则对应的
Action
应该是
/user/register.action
。
如果
namespace=”/”
,说明这是一个根命名空间。
如果指定了命名空间,但是在该命名空间中找不到该
Action
,
struts2
将会在默认的命名空间中继续查找,如果还找不到,则出现系统错误。
比如说:
请求
/order/save.action
,系统首先在命名空间
/order
中查找,如果找到,使用该
action
进行处理,否则,系统将到默认的命名空间中查找,如果两个命名空间都找不到,出现系统错误。
拦截器配置
拦截器实际上思想就是
AOP
,我们可以使用拦截器跟踪日志、跟踪系统性能瓶颈等。
拦截器的配置无非就是声明拦截器、引用拦截器以及声明拦截器栈。可以认为拦截器栈是由多个拦截器组成的一个大的拦截器。
定义拦截器和拦截器栈都在
<interceptors />
这个标记内
以下是一个例子:
<interceptors>
<interceptor name=”log” class=”cc.dynasoft.LogInterceptor” />
<interceptor name=”authority” class=”cc.dynasoft. Authority Interceptor” />
<interceptor name=”timer” class=”cc.dynasoft.TimerInterceptor” />
<interceptor-stack name=”default”>
<interceptor-ref name=” authority” />
<interceptor-ref name=” timer” />
</interceptor>
引用拦截器是在
action
中引用的:例子:
<action name=”login” class=”cc.dynasoft.LoginAction”>
……
<interceptor-ref name=”log” />
</action>
配置
Action
实际上配置
Action
很简单,就使用
action
标签就
OK
了,
action
标签有两个重要属性:
name
和
class
,
name
是必须指定的,他既是
action
的名字,也是该
action
需要处理的
URL
的前半部分。如果
class
没有指定,默认是
ActionSupport
。而
ActionSupport
默认处理就是返回一个
SUCCESS
字符串。
struts
的全局配置文件中有一个属性:
struts.enable.SlashesInActionNames
如果设置为
true
,允许
struts2
框架中使用斜线。
Action
中直接访问
servlet API
有以下两种方法:
1、
如果需要访问
ServletContext
,
Action
类需要实现接口
ServletContextAware
如果需要访问
HttpServletRequest
,
Action
类需要实现接口
ServletRequestAware
如果需要访问
HttpServletResponse
,
Action
类需要实现接口
ServletResponseAware
以下是例子代码,主要用于访问
Reponse
对象:
public class LoginAction implements Action,ServletResponseAware
{
private HttpServletResponse response;
//
实现
ServletResponseAware
接口必须实现的方法
public String execute() throw Exception
{
Cookie c = new Cookie(“user”,getUsername());
c.setMaxAge(60*60);//
最大生存时间
response.addCookie(c);
return SUCCESS;
}
}
2、
struts2
提供了一个
ServletActionContext
,这个类包含了访问
request
,
response
等静态方法。
注意:即使我们在
struts2
的
Action
中获得了
HttpServletResponse
对象,也不要尝试直接在
Action
中生成对客户端的输出。比如:下面代码是没有实际意义的,即
response.getWriter().println(“hello world!”);
分享到:
相关推荐
下面将详细介绍这些常用的JAR包及其在Struts2框架中的作用。 1. **struts2-core.jar**:这是Struts2框架的基础,包含了框架的核心类和接口,如Action、Result、Interceptor等。这个JAR文件提供了请求处理、动作映射...
总结来说,"Struts 2常用jar包"是构建基于Struts 2的Web应用所必需的类库,它们协同工作,为开发者提供了强大的MVC框架支持,包括请求处理、数据绑定、视图渲染以及丰富的客户端交互能力。正确理解和使用这些库,...
1. struts2-core-2.3.4.1.jar:这是Struts2的核心库,包含了框架的基础功能,如Action类、Result类型、拦截器、配置管理等。它是所有Struts2应用的基础,没有它,其他组件无法正常工作。 2. xwork-core-2.3.4.1.jar...
在这个主题中,我们将详细探讨Struts2框架中常用的jar包及其作用。 1. **struts2-core-2.3.34.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action类、拦截器、结果类型、配置管理等。它实现了请求的处理...
#### 二、Struts2常用配置常量 1. **`struts.i18n.encoding`** - **作用**:此常量用于指定Web应用的默认编码集,等同于调用`HttpServletRequest`的`setCharacterEncoding`方法。设置此项可以确保所有的输入数据...
本压缩包包含了13个Struts2框架中常用的类包,对于初学者和学生来说,掌握这些类包将对理解Struts2的工作原理及其核心功能大有裨益。 1. **struts2-core**: 这是Struts2的核心库,包含了框架的基础组件。如Action、...
在Java Web开发领域中,Struts2框架因其丰富的功能及灵活的配置而备受开发者们的青睐。为了更好地掌握Struts2框架并提升开发效率,本文将详细介绍Struts2中常用的标签及其用法,无论您是初学者还是高级用户,都能...
在使用Struts2时,需要在web.xml中配置Struts2的前端控制器Filter,以处理所有的HTTP请求。同时,Action类通常会继承自Struts2提供的ActionSupport类,以便利用其默认的行为和错误处理机制。 总的来说,Struts2.0的...
`struts2常用包.zip`包含了Struts2框架运行所必需的一些核心库和其他支持库。下面将详细介绍这些文件及其在Struts2中的作用: 1. `struts2-core-2.3.1.2.jar`:这是Struts2的核心库,包含了框架的主要组件和功能。...
这个“Struts2常用jar包.rar”文件包含了运行Struts2应用所需的核心库和依赖,方便开发者直接放入项目的lib目录中使用。下面将详细介绍Struts2框架的关键组件和它们在实际开发中的作用。 1. **核心组件**: - `...
在实际项目中,开发者还需要熟悉Struts2的配置文件(struts.xml),Action的定义,以及如何使用 strut标签库来构建视图。同时,理解OGNL表达式的用法,以及如何使用FreeMarker模板来动态生成页面,也是必不可少的...
在"JSP上手struts2常用包2.3版"中,包含了一系列用于快速开发Struts2应用的基础组件。 1. **Struts2核心库**:这是Struts2的核心组件,包括了Action、Result、Interceptor等关键概念的实现。例如`struts2-core.jar`...
在"STRUTS2常用JAr"这个压缩包中,我们通常会看到以下关键的JAR文件: 1. **struts2-core.jar**:这是Struts2框架的核心库,包含了Action、Interceptor、Result以及其他核心组件的实现。它提供了控制器层的主要功能...
以下是对"struts2的六个常用jar"的详细解释: 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的主要组件和功能。它提供了Action、Result、Interceptor等关键接口和实现,以及请求处理和视图渲染的基础...
下面我们将深入探讨Struts2的常用包及其在开发中的作用。 1. **核心包(core)**: - `struts2-core`: 这是Struts2的基础包,包含核心的控制器、拦截器、结果类型等。它定义了`Action`接口和`ActionSupport`基类,...
### Struts2常量设置详解 #### 一、概述 在Struts2框架中,配置文件`struts.properties`用于定义一系列重要的系统级配置项,这些配置项对框架的行为模式和功能实现起着至关重要的作用。本文将详细介绍该文件中几个...
10. **标签的CSS和JavaScript控制**:Struts2的标签支持CSS类的设置,如`cssClass`属性,以及JavaScript事件处理,如`onchange`、`onclick`等。 以上只是Struts2.0常用标签的一小部分,实际使用中还有更多功能强大...
在使用Struts2时,了解并掌握其常用的类库至关重要。以下是一些核心的Struts2类库及其作用的详细解释: 1. **Struts2 Core Library**:这是Struts2的核心库,包含了框架的基本组件,如Action、Result、Interceptor...