Struts2(六):ResultType
本章节将继续学习struts2的返回类型的使用方法。
学习文档下载struts2 full包解压后会在doc下包含离线html文档。

点击运行后页面:

点击Guides向导终将会有向导列表

再点开后,就可以看到struts2支持的所有resultType:

默认的resultType是dispatcher.
常用的dispatcher,redirect,redirectAction,chain.
package name="default" namespace="/" extends="struts-default">
<action name="testServletObject"
class="com.dx.actions.TestActionContextFetchServletObjectAction">
<result>/WEB-INF/test-context.jsp</result>
</action>
<!-- default class="com.opensymphony.xwork2.ActionSupport" method="execute" -->
<action name="gotoLoginPage">
<!-- name default value:"success" -->
<result>/login.jsp</result>
</action> <action name="logout" class="com.dx.actions.TestWithXXXAware"
method="logout">
<result name="logout-success">/login.jsp</result>
</action> <action name="login" class="com.dx.actions.TestWithXXXAware" method="login">
<result name="login-success">/WEB-INF/login-success.jsp</result>
</action> <action name="testResult" class="com.dx.actions.TestResultAction" method="test">
<!-- redirect到一个Action -->
<result name="redirectAction-success" type="redirectAction">
<param name="actionName">testRdirect</param>
<param name="namespace">/testNamespace</param>
</result>
<!-- redirect -->
<result name="redirect-success" type="redirect">/login.jsp</result>
<!-- dispatcher -->
<result name="dispatcher-success" type="dispatcher">/login.jsp</result>
</action> <action name="createAccount" class="com.dx.actions.AccountAction" method="execute">
<!-- chain -->
<result type="chain">login</result>
</action>
</package> <package name="testRedirectPackage" namespace="/testNamespace" extends="struts-default">
<action name="testRdirect" class="com.dx.actions.TestRedirectAction" method="test">
<result name="test-success">/WEB-INF/test-success.jsp</result>
</action>
</package>
TestRedirectAction.java
package com.dx.actions;
import org.apache.struts2.ServletActionContext;
public class TestRedirectAction {
public String test() {
String resultType = ServletActionContext.getRequest().getParameter("resultType");
System.out.println(resultType);
ServletActionContext.getRequest().setAttribute("resultType", resultType);
System.out.println("TestRedirectAction.test");
return "test-success";
}
}
TestResultAction.java
package com.dx.actions;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import sun.nio.cs.ext.TIS_620;
public class TestResultAction {
private String resultType;
public void setResultType(String resultType) {
this.resultType = resultType;
}
public String test() {
System.out.println(resultType);
if (resultType.equalsIgnoreCase("dispatcher")) {
System.out.println("result dispatcher-success");
return "dispatcher-success";
} else if (resultType.equalsIgnoreCase("redirect")) {
System.out.println("result redirect-success");
return "redirect-success";
} else if (resultType.equalsIgnoreCase("redirectAction")) {
System.out.println("result redirectAction-success");
return "redirectAction-success";
} else if (resultType.equalsIgnoreCase("chain")) {
System.out.println("result chain-success");
return "chain-success";
} else {
System.out.println("no match");
}
ServletActionContext.getRequest().setAttribute("resultType", this.resultType);
return "";
}
}
AccountAction.java
package com.dx.actions;
public class AccountAction {
public String execute(){
System.out.println("acction action chain");
return "success";
}
}
index.jsp
<a href="testResult?resultType=redirectAction">redirectAction</a>
<br />
<a href="testResult?resultType=redirect">redirect</a>
<br />
<a href="testResult?resultType=dispatcher">dispatcher</a>
<br />
<a href="createAccount">test chain</a>
result配置还有很多需要注意的地方,可以参考:
file:///D:/Java_Study/struts-2.3.28-all/struts-2.3.28/docs/docs/result-configuration.html
这里就简单说明,介绍,一遍自己可以学习使用。
Struts2(六):ResultType的更多相关文章
- struts2(六) 文件上传和下载
前面对文件下载提过一点点,这里正好要讲文件上传,就放在一起在说一遍. --WH 一.单文件上传 在没学struts2之前,我们要写文件上传,非常麻烦,需要手动一步步去获取表单中的各种属性,然后在进行相 ...
- Struts2(六)result
一.result简述 result:输出结果:第个Action返回一个字符串,Struts2根据这个值来决定响应结果 name属性:result的逻辑名.和Actin里的返回值匹配,默认"s ...
- Struts2六、为应用指定多个配置文件
为了使用Struts.xml更简洁,更利于维护,我们可以把Struts.xml要配置的Action信息分类别放在其他的XML文件中,使用include在struts.xml中加载这些文件: 将Web. ...
- Struts2(六) 用Struts完成客户列表显示
Struts完成客户列表显示 所用的基础知识 在之前的随笔中已经讲过.这篇是介绍如何使用Struts 完成客户列表显示 . 下面是 完成的代码执行逻辑图: 抽取项目部分代码 相信大家认真看一遍就明 ...
- Struts2(六.用标签显示用户列表及Value Stack和Stack Context)
一.用Struts2标签显示用户列表 原理: 在struts中可以通过在action中将所有用户的信息存入到某个范围中,然后转向userlist.jsp,进行访问 原则: 在jsp网页上,尽量不要出现 ...
- Struts2常量_Action配置路径_通配符
Struts2中常用的常量 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker .velocity的输出 <cons ...
- Struts2学习(四)
struts-defualt.xml指定的result的类型 1.struts-defualt.xml 文件的 181 行 开始定义了: <result-types> <result ...
- (五)Struts2处理结果管理
当Action处理完用户请求时,处理结果应该通过视图资源实现,但将哪个视图呈现给浏览者呢.由<result.../>来决定 Action处理完用户请求后,返回一个普通字符串.整个普通字符串 ...
- 【struts2】Result和ResultType
简单的说,Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,下一个页面在哪里.Result仅仅是个字符串,仅仅是用来指示下一个页面的,那么如何才能够到达下一个页面呢? ...
随机推荐
- CF 2B.The least round way
题目链接 很久以前就见过此题,以前看了题解,然后今天写了写,写的真搓. #include <cstdio> #include <cstring> #include <st ...
- 【BZOJ1002】[FJOI2007]轮状病毒 递推+高精度
Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同的n轮状病毒数输出 Sample Inpu ...
- BZOJ2844: albus就是要第一个出场
Description 已知一个长度为n的正整数序列A(下标从1开始), 令 S = { x | 1 <= x <= n }, S 的幂集2^S定义为S 所有子集构成的集合. 定义映射 f ...
- MySQL 服务无法启动。服务没有报告任何错误。
MySQL数据库在升级到5.7版本后,和之前的版本有些不一样,没有data文件夹,我们都知道MySQL数据库文件是保存在data文件夹中的,网上有人说把5.6版本的data文件夹拷贝一个,这种说法听听 ...
- SVN文本文件报二进制属性的问题
2011-11-21 00:42 svn总出现二进制相关的烦人事 在使用svn add 时提示: A (bin) templates/translate/screen/selectTransLan ...
- ng-switch 指令
<!--标准用法--> <div ng-switch on="showSecret"> <div ng-switch-when="true& ...
- 【Hihocoder】1014 : Trie树
问题:http://hihocoder.com/problemset/problem/1014 给定一个字符串字典dict,输入字符串str, 要求从dict中找出所有以str为前缀的字符串个数. 构 ...
- 需要注意学习.net过程的要点
基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 封装 多态 ASP.NET MVC (Web Form 用的越来越少,如果你不熟悉,可以不看) JavaScript 基础语法 如何在HT ...
- mysql导数据库用到的语句
将字段格式为2013-08-09 13:22:55转换为时间戳 UPDATE `AttendClass` SET `regdate` = unix_timestamp(regDate2) WHERE ...
- 关于UGUI Image Sliced模式的一个BUG。
Unity4.6.2f1 在Android/IOS平台下,Image选择Sliced模式,并且对Sprite设置好Border后,会发现并没有按照预计的 情况进行拉伸. 搜了一下是因为Sprite的G ...