首先介绍一下namespace
Struts2的配置文件struts.xml当中有一个元素package ,这个元素有一个属性是 namespace。这个属性的作用是什么呢?
1. 确定该包内的action URL路径
例如:
Java代码
1.<package name="rodom" namespace="/templates" extends="struts-default">
2. <action name="testAction" class="test.web.TestAction">
3. <result>test.jsp</result>
4. </action>
5.</package>
<package name="rodom" namespace="/templates" extends="struts-default">
<action name="testAction" class="test.web.TestAction">
<result>test.jsp</result>
</action>
</package>假设应用contextpath名字为tianxia,应用服务器端口号为8080若在浏览器中访问testAction此时URL的路径为 http://localhost:8080/tianxia/ templates/ testAction.action
在配置namespace时注意的是在templates名字前加“/”
2. 确定返回jsp或ftl等文件的物理路径
如上面的配置test.jsp需放在templates目录下struts才能够找到
若想访问应用根目录下的文件例如index.jsp则如下配置:
<result>/index.jsp</result>
接下来讨论一下<result type=”chain”>的配置
当action结果调用另一个action时result的类型设置为chain,则表示被调用的action会保持调用action的属性值。
Type=“chain”时 result标签的参数可以有下面4个
• actionName
• namespace
• method
• skipActions
举个例子:
配置如下:
Java代码
1.<action name="fm" class="test.web.SimpleAction">
2. <result type="chain">
3. <param name="actionName">chaintest</param>
4. <param name="method">look</param>
5. </result>
6.</action>
7.<action name="chaintest" class="test.web.ChainAction">
8. <result type="freemarker">test.ftl</result>
9.</action>
<action name="fm" class="test.web.SimpleAction">
<result type="chain">
<param name="actionName">chaintest</param>
<param name="method">look</param>
</result>
</action>
<action name="chaintest" class="test.web.ChainAction">
<result type="freemarker">test.ftl</result>
</action>
Java代码
1.public class SimpleAction extends ActionSupport{
2. private String message;
3.public String getMessage() {
4. return message;
5. }
6. public void setMessage(String message) {
7. this.message = message;
8. }
9.public String execute()
10. {
11. message = "hello ";
12. }
13.}
public class SimpleAction extends ActionSupport{
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String execute()
{
message = "hello ";
}
}
Java代码
1.public class ChainAction extends ActionSupport{
2. private String message;
3.public String getMessage() {
4. return message;
5. }
6. public void setMessage(String message) {
7. this.message = message;
8. }
9.public String execute()
10. {
11. message += " tianxia!";
12. System.out.println(message);
13. }
14.}
public class ChainAction extends ActionSupport{
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String execute()
{
message += " tianxia!";
System.out.println(message);
}
}
当调用”fm”这个action返回SUCCESS时fm会调用test.web.ChainAction类的look()方法
控制台上会打印 hello tianxia!这说明SimpleAction的message被保存到ChainAction。
此处需要注意的是,
1.一个Action调用其它Action用chain的方式,调用者中的集合类中的元素依然会保存到被调用者执行。
2. <result type="chain"> chaintest! look</result>不能访问到test.web.ChainAction的look方法
原文:http://mike-zhangp.iteye.com/blog/290816
分享到:
相关推荐
以前学习struts2时候,自己练习的代码,可以供初学者参考学习
struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
前几天在网上下载一个struts2的helloword的例子,那个作者也真够缺德的,搞个错误的程序,害得我查了一天的程序错误。 最后发现竟然是struts.xml被写成啦sturts.xml。 碰见这样的问题先鄙视下提供例子的作者, 再...
Struts2是一套非常优秀的Java WEB应用框架,实现优雅、功能强大、使用简洁。目前已有大量的企业项目采用Struts2来作为Web框架进行开发,掌握Struts2是每个进行Web开发的Java程序员的一项必备技能。 本视频对Struts2...
struts2 资料struts2 资料struts2 资料struts2 资料
struts2环境搭建+struts2 新闻发布系统+struts2 留言板 struts2环境搭建:基础框架搭建,简单易上手,适合新手,比你看书强多了,实践源于理论而高于理论,贵在实践 朋友。 struts2 新闻发布系统:struts2+jsp 功能不...
-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
struts2源码 struts2案例 struts2使用包
Struts2漏洞检查工具Struts2.2019.V2.3
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...
Struts2 Struts2 超好的Struts2 pdf 文档 Struts2 Struts2 超好的Struts2 pdf 文档 Struts2.pdf文档
一个很好的关于Struts2的讲义!struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义struts2讲义
struts2的概述struts2下的HelloWord struts2基础 struts2做好准备 struts2的标志 struts2的Action讲解 struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中...
struts2-scan 检测struts2漏洞,认证检测struts2漏洞
1、struts2概述 Struts2 软件下载 Struts2 比较重要的类 操作步骤及框架配置 struts运行机制 2、简单的struts2程序 3、struts2配置文件 4、cion主要内容 Namespace、自定义Action、路径问题、通配符、包含模块...
Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2Struts2...
struts2例子struts2例子struts2例子struts2例子struts2例子struts2例子struts2例子struts2例子
《Struts2技术内幕:深入解析Struts2架构设计与实现原理》由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。 本书以Struts2的...