Struts2中Action之ResultType
我们在struts-defalut.xml文件中可以看到如下图所示:

这些类型是配置文件所带的。接下来我们主要讲解我标注出来的这个,其他的我就不做详解了,有兴趣的可以去试试。
web.xml文件我在这里就不配置了。直接从action开始
1.0当type取值为chain时:
chain:转发到action
创建LoginAction继承ActionSupport类定义方法
package cn.struts2.action; import com.opensymphony.xwork2.ActionSupport; import java.util.Map; /**
* Created by accp on 2017/3/1.
*/
public class LoginAction extends ActionSupport {
public String list(){
System.out.println("====进入==LoginAction====list============");
return "list";
} public String add(){
System.out.println("====进入====LoginAction==add============");
return "add";
}
}
创建ShoppingAction
package cn.struts2.action; import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext; import javax.servlet.http.HttpServletRequest; /**
* Created by accp on 2017/3/2.
*/
public class ShoppingAction extends ActionSupport { public String list(){
System.out.println("========进入ShoppingAction=====list============");
HttpServletRequest request = ServletActionContext.getRequest();
String uname = (String) request.getAttribute("uname");
System.out.println(uname);
return "list";
} public String add(){
System.out.println("======进入ShoppingAction=======add============");
return "add";
}
}
创建两个jsp页面,填写上不同的内容。
最主要的接下来配置struts.xml
.......
<!--转发到action-->
<action name="loginAdd" class="cn.struts2.action.LoginAction" method="add">
<result name="add" type="chain">
<param name="actionName">shoppingList</param>
<param name="namespace">/</param> </result>
</action>
<action name="shoppingList" class="cn.struts2.action.ShoppingAction" method="list">
<result name="list">/success.jsp</result>
<result name="success"></result>
</action>
<param name="actionName">loginList</param>:指向的是你要转向的action的逻辑名称,要特别注意!!!!!!!
actionName:系统定义。在struts-defalut.xml------>result-type----->ActionResultType

运行效果:


因为在一次转发内携带数据是有效的,我们就可以得到上图的结果。
1.1type取值为dispatcher
dispatcher:转发到页面(以LoginAction类为例)
<!--转发到页面-->
<action name="loginAction2" class="cn.struts2.action.LoginAction" method="add">
<result name="add" type="dispatcher">
/success.jsp
</result>
</action>
直接指向页面即可,不需要再返回action通过别的方法。
1.2type取值为redirectAction
redirectAction:重定向action
struts.xml配置:
<!--重定向action-->
<action name="loginAction3" class="cn.struts2.action.LoginAction" method="add">
<result name="add" type="redirectAction">
<param name="actionName">shoppingList</param>
<param name="namespace">/</param>
</result>
</action>
<action name="shoppingList" class="cn.struts2.action.ShoppingAction" method="list">
<result name="list">/index.jsp</result>
</action>
上述方法不变运行,效果图如下:



从两张图中我们可以很清晰的看出,地址栏发生了很大的变化,再看结果,由于我们把数据方法的是request作用域中,在一次转发内
可以拿到数据,但是重定向相当于重新请求,携带的数据消失,得到null。
1.3type取值为redirect
redirect:重定向到页面
<!--重定向到页面-->
<action name="loginAction4" class="cn.struts2.action.ShoppingAction" method="list">
<result name="list" type="redirect">
/success.jsp
</result>
</action>
重定向地址栏都会发生变化,在使用的时候要根据自己的需求选择合适的类型。
1.4type取值为plainText
plainText:纯文本
struts.xml:
<!--plainText-->
<action name="loginAction5" class="cn.struts2.action.LoginAction" method="add">
<result name="add" type="plainText">
<param name="charSet">UTF-</param>
<param name="location">/index.jsp</param>
</result>
</action>
复制代码
<param name="charSet">UTF-8</param>:
location:指向那个页面。
效果图:

得到的是源代码。很神奇是吧,你可以试试其他的类型。
就到这里吧............
Struts2中Action之ResultType的更多相关文章
- Struts2中Action取得表单数据的几种方法
Struts2中Action取得表单数据的几种方法 Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...
- 关于struts2中action请求会执行两次的问题
关于struts2中action请求会执行两次的问题 在struts2中发现,调用action中的方法,方法会被执行两次,后来发现调用的方法是get开头的,把它改为其他名称开头的后,就不会执行 ...
- struts2中Action到底是什么,怎么理解
struts2中Action到底是什么,怎么理解 1.配置完web.xml2.创建视图页面login.jsp3.创建业务控制器LoginAction类(解释说:创建业务控制器LoginAction类, ...
- jap页面获取struts2中action中变量的值
在jsp页面中可以通过ONGL表达式获取struts2中action处理后的变量的值,这是因为每一个action在初始化后都会放到strackcontext中,可以通过ONGL表达式取到值. 注意要在 ...
- Struts2中Action接收参数的方法
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt112 Struts2中Action接收参数的方法主要有以下三种: 1.使用A ...
- Struts2中Action接收参数的方法主要有以下三种:
Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式): a.定义:在Action类中定义属性,创建get和set方法: b.接 ...
- 基于用户登陆的struts2中action的分类详解
在struts2中action的分类有:继承 ActionSupport 实现 Action,模型驱动(ModelDriven)的 Action,多方法的 Action三种方式. 1.继承 Actio ...
- Struts2中Action自己主动接收參数
Struts2中Action接收參数的方法主要有下面三种: 1.使用Action的属性接收參数:(通过属性驱动式) a.定义:在Action类中定义属性,创建get和set方法. b. ...
- Struts2中Action接收参数
Struts2中Action接收参数的方法主要有以下三种: Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数: a.定义:在Action类中定义属 ...
随机推荐
- CentOS设置服务开机启动的两种方法
一.通过服务的方式设置自启动 1. 在/etc/init.d 下建立相关程序的启动脚本 2. chkconfig --add mysqld(添加服务到chkconfig列表中) chkconfig ...
- OO第四次博客作业!
oo第四次博客作业 一.测试与正确性论证比较 测试只是单方面片面的证明对于当前的输入程序是正确的,测试只能证明程序有错误,不能说明程序是对的. 正确性论证是程序达到预期目的的一般性陈述,是通过规范化的 ...
- python小游戏
import time,random # 需要的数据和变量放在开头player_list = ['[狂血战士]','[森林箭手]','[光明骑士]','[独行剑客]','[格斗大师]','[枪弹专家] ...
- 初学者易上手的SSH-hibernate04 一对一 一对多 多对多
这章我们就来学习下hibernate的关系关联,即一对一(one-to-one),一对多(one-to-many),多对多(many-to-many).这章也将是hibernate的最后一章了,用于初 ...
- Left Join on 多条件查询时,条件过滤的问题
例如:A Left Join B on (...) on 后面的条件是对B数据的过滤,如果要对A的数据或者联合之后的数据集进行过滤,则要把过滤条件放在where子句中
- C# 生成小于Int数值绝对值的随机数
C#中有两种类型的随机数生成器: 伪随机数(System.Random) 安全随机数(System.Security.Cryptography.RNGCryptoServiceProvider) ...
- pom中Maven插件 配置 maven-dependency-plugin maven-surefire-plugin
使用Maven插件将依赖包 jar包 war包及配置文件输出到指定目录 1|0写在前面 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序.这样的好处在于 ...
- Cache Line
转载: https://yq.aliyun.com/articles/46550
- Java JTable视图窗口滚动并定位到某一行
java swing编程中需要和数据库打交道并用表格将数据展示出来,如果数据太多,可能显示窗口如下 这时数据太多就需要拖动垂直滚动条才能看到下面的数据,那如果我现在有这样一个需求,我希望往数据库里插入 ...
- JavaJ2EE相关知识整理
1.Servlet的生命周期 在Web容器中,Servlet主要经历4个阶段 ①.加载Servlet:当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servle ...