- 浏览: 138572 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
酱油男js:
不错...学习了。
oracle sql 优化大全 -
浪子秋水:
网页编码就是那点事 -
shenghuorulan:
通俗易懂。好文章,直接想到的问题都提到了。
oracle 全文检索实践 -
飞儿9530:
lucene 3.0.1 学习
来源地址:http://www.blogjava.net/nokiaguy/archive/2008/04/16/193457.html
在本文中将详细讲述 struts.xml文件的常用配置及注意事项。
1. 使用 <include> 标签重用配置文件
在Struts2中提供
了一个默认的struts.xml文件,但如果package、action、interceptors等配置比较多时,都放到一个struts.xml
文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用<include>标签
引用这些配置文件。这样做的优点如下:
结构更清晰,更容易维护配置信息。
配置文件可以复用。如果在多个 Web程序中都使用类似或相同的配置文件,那么可以使用 <include>标签来引用这些配置文件,这样可以减少工作量。
假设有一个配置文件,文件名为 newstruts.xml,代码如下:
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< package name ="demo" extends ="struts-default" >
< action name ="submit" class ="action.MoreSubmitAction" >
< result name ="save" >
/result.jsp
</ result >
< result name ="print" >
/result.jsp
</ result >
</ action >
</ package >
</ struts >
则
struts.xml
引用
newstruts.xml
文件的代码如下:
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< include file ="newstruts.xml" />
< package name ="test" extends ="struts-default" >
</ package >
</ struts >
大家要注意一下,用 <include>引用的 xml文件也必须是完成的 struts2的配置。实际上 <include>在引用时是单独解析的 xml文件,而不是将被引用的文件插入到 struts.xml文件中。
2. action 的别名
在默认情况下,
Struts2
会调用动作类的
execute
方法。但有些时候,我们需要在一个动作类中处理不同的动作。也就是用户请求不同的动作时,执行动作类中的不同的方法。为了达到这个目的,可以在
<action>
标签中通过
method
方法指定要指行的动作类的方法名,并且需要为不同的动作起不同的名子(也称为别名)。如下面代码所示:
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< package name ="demo" extends ="struts-default" >
< action name ="test" class ="action.MyAction" >
</ action >
< action name ="my" class ="action. MyAction" method ="my" >
</ action >
</ package >
</ struts >
上面代码的两个动作的 class属性都指向同一个类, name为这个类起了两个动作别名: test和 my。在动作 my中,使用了 method属性指定要要运行的方法名为 my。
在
MyAction
类中必须要有
my
方法,代码如下:
import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport
{
public String execute() throws Exception
{
// 处理test动作的代码
}
public String my() throws Exception
{
// 处理my动作的代码
}
}
除了在 struts.xml中配置别名,还可以通过请求参数来描述指定动作(并不需要在 struts.xml中配置)。请求参数的格式如下:
http://localhost:8080/contextPath/actionName!method.action
关于通过请求指定动作的详细内容,请参阅笔者写的《 Struts2教程 2:处理一个 form多个 submit》 。
3. 为 action 指定参数
在
struts2中还可以为
action指定一个或多个参数。大家还记着
struts1.x是如何设置的
action参数不?
在
struts1.x中可以使用
<action>标签的
parameter属性为其指定一个
action参数,如果要指定多个,就只能通过逗号(
,)或其他的分隔符将不同的参数隔开。而在
struts2中可以通过
<param>标签指定任意多个参数。代码如下:
< param name ="param1" > value1 </ param >
< param name ="param2" > value2 </ param >
< result name ="save" >
/result.jsp
</ result >
</ action >
当然,在
action
中读这些参数也非常简单,只需要象获取请求参数一样在
action
类中定义相应的
setter
方法即可(一般不用定义
getter
方法)。如下面的代码将读取
param1
和
param2
参数的值:
import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport
{
private String param1;
private String param2;
public String execute() throws Exception
{
System.out.println(param1 + param2);
}
public void setParam1(String param1)
{
this .param1 = param1;
}
public void setParam2(String param2)
{
this .param2 = param2;
}
}
当 struts2在调用 execute之前, param1和 param2的值就已经是相应参数的值了,因此,在 execute方法中可以直接使用 param1和 param2。
4. 选择 result 类型
在默认时,
<result>标签的
type属性值是“
dispatcher”(实际上就是转发,
forward)。开发人员可以根据自己的需要指定不同的类型,如
redirect、
stream等。如下面代码所示:
<result name="save" type="redirect">
/result.jsp
</result>
这此
result-type可以在
struts2-core-2.0.11.1.jar包或
struts2源代码中的
struts-default.xml文件中找到,在这个文件中找到
<result-types>标签,所有的
result-type都在里面定义了。代码如下:
< result-type name ="chain" class ="com.opensymphony.xwork2.ActionChainResult" />
< result-type name ="dispatcher" class ="org.apache.struts2.dispatcher.ServletDispatcherResult" default ="true" />
< result-type name ="freemarker" class ="org.apache.struts2.views.freemarker.FreemarkerResult" />
< result-type name ="httpheader" class ="org.apache.struts2.dispatcher.HttpHeaderResult" />
< result-type name ="redirect" class ="org.apache.struts2.dispatcher.ServletRedirectResult" />
< result-type name ="redirectAction" class ="org.apache.struts2.dispatcher.ServletActionRedirectResult" />
< result-type name ="stream" class ="org.apache.struts2.dispatcher.StreamResult" />
< result-type name ="velocity" class ="org.apache.struts2.dispatcher.VelocityResult" />
< result-type name ="xslt" class ="org.apache.struts2.views.xslt.XSLTResult" />
< result-type name ="plainText" class ="org.apache.struts2.dispatcher.PlainTextResult" />
<!-- Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
< result-type name ="redirect-action" class ="org.apache.struts2.dispatcher.ServletActionRedirectResult" />
< result-type name ="plaintext" class ="org.apache.struts2.dispatcher.PlainTextResult" />
</ result-types >
5. 全局 result
有很多时候一个 <result>初很多 <action>使用,这时可以使用 <global-results>标签来定义全局的 <result>,代码如下:
< package name ="demo" extends ="struts-default" >
< global-results >
< result name ="print" > /result.jsp </ result >
</ global-results >
< action name ="submit" class ="action.MoreSubmitAction" >
</ action >
< action name ="my" class ="action.MoreSubmitAction" method ="my" >
</ action >
</ package >
</ struts >
如果
<action>
中没有相应的
<result>
,
Struts2
就会使用全局的
<result>。
发表评论
-
linux重启oracle 各种方法
2013-01-15 09:53 1320来自 : http://blog.sina.com.cn/s/ ... -
SVN服务器配置
2013-01-10 22:49 1257来自:http://air-blue55.blog.163.c ... -
网页编码就是那点事
2012-11-24 16:10 1045来自 : http://www.kuqin.com/webpa ... -
Tomcat 配置 CAS 的一个问题。unable to find valid certification path to requested target
2012-11-11 21:40 1648来自: http://blog.csdn.net/cool_ ... -
Tomcat SSL配置大全
2012-11-11 21:02 1245来源: http://www.iteye.com/topi ... -
Html中td自动换行问题
2012-10-25 17:57 1099来自:http://blog.csdn.net/dududu0 ... -
oracle 全角、半角转换,和oracle 的 DUMP函数
2012-06-18 09:56 2192to_single_byte(c)转换成半角 to_multi ... -
tomcat sso 配置
2012-05-29 23:18 1670源: http://www.oecp.cn/hi/single ... -
Hibernate 利用配置文件配置HQL/SQL
2012-05-21 17:14 1846Query.hbm.xml <?xml version= ... -
CAS工作流程
2012-05-19 22:25 1616CAS3.0的工作流程: 0.app将用户转发到CAS处, 并 ... -
jforum 表目录
2012-04-18 18:37 3048目 录 1、附件关系表JFORUM_ATTACH 2 2、附件 ... -
Jfroum集成cas单点登录
2012-04-17 21:35 16191.安装CAS 下载cas server ,设置好服务器端, ... -
JForum登录用例
2012-04-15 22:59 61671,键入用户名、密码,单击“登入”按钮,登录请求发送到/JFo ... -
tinyMCE 详细文档
2012-03-28 10:57 2164http://www.iwms.net/n2065c17.as ... -
JBPM3.1.4 相关表的 意义
2012-03-18 22:54 1036JBPM_ACTION action记录表 JBPM_DEC ... -
JBPM环境配置
2012-03-18 18:56 1864jBPM 需要数据库支持, j ... -
xfire 编写webservice例子
2012-02-23 16:51 1092来自 : http://www.blogjava.net/j ... -
ArrayUtils常用的用法
2012-02-21 10:51 1608// 1.打印数组 ArrayUtils.toString(n ... -
Tomcat自动缓存context.xml,导致在eclipse中修改后,不能立即启作用
2012-02-18 11:56 1809http://blog.csdn.net/shiqidide/ ... -
JavaScript CSS Style属性对照表
2012-02-11 22:36 1140CSS语法 (不区分大小写) JavaScript语法 (区分 ...
相关推荐
本文将对`struts-config.xml`中的关键元素进行详细解析,并结合实际示例来帮助读者更好地理解和应用这些配置。 #### 二、`struts-config.xml`文件结构概览 `struts-config.xml`文件遵循一定的DTD(Document Type ...
需要注意的是,被引用的XML文件必须是完整的Struts2配置文件,`<include>` 标签不会将它们合并到主配置文件中,而是独立解析每个文件。这意味着每个包含的XML文件应该符合Struts2的配置规范。 接下来,我们讨论...
通过对`struts-config.xml`配置文件的详细解析,我们可以了解到如何通过不同的元素和属性来配置数据源、表单Bean以及全局异常处理等内容。这对于理解和使用Struts框架来说至关重要。希望本文能帮助读者更好地掌握...
本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便自定义和配置Struts2框架。 Dom4j是一个灵活且功能丰富的Java库,专门用于处理XML文档。它提供了全面的API,可以方便地读取、写入、修改和...
在Struts2框架中,`validation.xml`是用于定义验证规则的重要配置文件。根据所提供的信息,我们可以了解到文章主要探讨了Struts2中两种不同的`validation.xml`配置方式,并且通过一个具体的例子进行了说明。下面将对...
通过对`struts.xml`配置文件的详细解析,我们可以看到Struts 2框架的强大之处在于其高度可配置性。开发者可以通过简单的XML配置即可实现复杂的功能需求。了解并掌握这些配置项对于高效开发基于Struts 2的应用程序至...
总结起来,`dom4j`是解析XML文件的强大工具,而`ActionWrapper`、`PackageWrapper`和`ResultWrapper`则是对`struts.xml`配置信息的抽象,它们有助于简化和优化Struts2应用的配置管理。通过使用这些包装类,我们可以...
在Struts2中,注解的引入使得开发者可以摆脱繁琐的`struts.xml`配置文件,实现“零配置”运行。 首先,让我们了解什么是注解(Annotation)。注解是Java提供的一种元数据机制,允许在源代码中嵌入信息,这些信息...
本文将深入解析`struts.xml`中的Action配置,帮助开发者更好地理解和运用这一关键组件。 首先,Action配置是Struts2中定义业务逻辑入口的关键,它将HTTP请求映射到特定的Java类方法上。在`struts.xml`中,一个...
`struts.xml`文件是Struts2框架的核心配置文件,它用于定义应用程序的各种配置信息,包括但不限于包(Package)、拦截器(Interceptors)、默认拦截器(Default Interceptor)、全局结果(Global Results)以及...
本教程将详细讲解如何手动搭建一个完整的Struts2环境,包括引入所有必要的jar包以及配置struts.xml和web.xml文件。 首先,我们需要准备Struts2的核心库。Struts2框架依赖于一系列的jar包,这些包包含了从控制器到...
在开发过程中,我们经常会遇到与`struts.xml`配置文件相关的错误,这是由于XML解析问题或者DTD(文档类型定义)引用的问题引起的。`struts.xml`是Struts2框架的核心配置文件,它定义了动作、结果、拦截器等关键组件...
在Struts2框架中,配置文件`struts.xml`和`web.xml`是核心部分,它们定义了应用程序的行为和路由规则。随着版本的更新,配置方式也会有所改变。以下是Struts2.5版本中`struts.xml`和`web.xml`配置的更改方法: **1....
### Struts-config.xml配置文件详解 #### 一、引言 在Java Web开发领域中,Struts框架作为经典的MVC(Model-View-Controller)架构实现之一,为开发者提供了便捷的方式来构建可维护性和扩展性高的Web应用程序。...
在Struts2框架中,`struts.xml` 文件扮演着至关重要的角色,它不仅负责配置应用的基本信息,还允许开发者通过一系列的常量(constant)来定制Struts2的行为。这些常量能够帮助我们更加灵活地控制框架的行为特性,...
- 使用 `<import>` 标签引入其他配置文件,如 `Struts2Action.xml` 和 `database.xml`,便于分散配置管理。 ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在Struts2中,`struts.xml`文件是核心配置文件,用于定义应用的行为、动作映射、结果类型、拦截器等。这篇博文主要探讨了`struts.xml`文件的元素结构,下面我们将详细解析这些关键元素。 首先,`struts.xml`文件...
在Struts2中,`struts.xml`文件是核心配置文件,它定义了动作、结果、拦截器等关键组件。在默认情况下,`struts.xml`通常位于`src/main/resources`或在Web应用中是`WEB-INF/classes`目录下。 在描述的问题中,...
### Struts2注解配置全面解析 #### 一、引言 随着Struts2框架的不断更新和发展,很多开发者在尝试使用注解方式进行配置时往往会遇到不少难题。尤其是在使用Struts2.1及以上版本时,由于大部分教程和资料仍然基于...
在本文中,我们将深入探讨Struts2版本2.1.6中的核心jar包以及如何调整`web.xml`配置文件以实现正确部署。 首先,Struts2的核心jar包是框架运行的基础,它们提供了Action映射、拦截器、结果类型和其他关键功能。对于...