Struts2(六):ResultType

本章节将继续学习struts2的返回类型的使用方法。

学习文档下载struts2 full包解压后会在doc下包含离线html文档。

点击运行后页面:

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

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

默认的resultType是dispatcher.

常用的dispatcher,redirect,redirectAction,chain.

 1 package name="default" namespace="/" extends="struts-default">
 2         <action name="testServletObject"
 3             class="com.dx.actions.TestActionContextFetchServletObjectAction">
 4             <result>/WEB-INF/test-context.jsp</result>
 5         </action>
 6         <!-- default class="com.opensymphony.xwork2.ActionSupport" method="execute" -->
 7         <action name="gotoLoginPage">
 8         <!-- name default value:"success" -->
 9             <result>/login.jsp</result>
10         </action>
11
12         <action name="logout" class="com.dx.actions.TestWithXXXAware"
13             method="logout">
14             <result name="logout-success">/login.jsp</result>
15         </action>
16
17         <action name="login" class="com.dx.actions.TestWithXXXAware" method="login">
18             <result name="login-success">/WEB-INF/login-success.jsp</result>
19         </action>
20
21         <action name="testResult" class="com.dx.actions.TestResultAction" method="test">
22             <!-- redirect到一个Action -->
23             <result name="redirectAction-success" type="redirectAction">
24                 <param name="actionName">testRdirect</param>
25                 <param name="namespace">/testNamespace</param>
26             </result>
27             <!-- redirect -->
28             <result name="redirect-success" type="redirect">/login.jsp</result>
29             <!-- dispatcher -->
30             <result name="dispatcher-success" type="dispatcher">/login.jsp</result>
31         </action>
32
33         <action name="createAccount" class="com.dx.actions.AccountAction" method="execute">
34             <!-- chain -->
35             <result type="chain">login</result>
36         </action>
37     </package>
38
39     <package name="testRedirectPackage" namespace="/testNamespace" extends="struts-default">
40         <action name="testRdirect" class="com.dx.actions.TestRedirectAction" method="test">
41             <result name="test-success">/WEB-INF/test-success.jsp</result>
42         </action>
43     </package>

TestRedirectAction.java

 1 package com.dx.actions;
 2
 3 import org.apache.struts2.ServletActionContext;
 4
 5 public class TestRedirectAction {
 6     public String test() {
 7         String resultType = ServletActionContext.getRequest().getParameter("resultType");
 8         System.out.println(resultType);
 9         ServletActionContext.getRequest().setAttribute("resultType", resultType);
10         System.out.println("TestRedirectAction.test");
11         return "test-success";
12     }
13 }

TestResultAction.java

 1 package com.dx.actions;
 2
 3 import org.apache.struts2.ServletActionContext;
 4
 5 import com.opensymphony.xwork2.ActionContext;
 6
 7 import sun.nio.cs.ext.TIS_620;
 8
 9 public class TestResultAction {
10     private String resultType;
11
12     public void setResultType(String resultType) {
13         this.resultType = resultType;
14     }
15
16     public String test() {
17         System.out.println(resultType);
18
19         if (resultType.equalsIgnoreCase("dispatcher")) {
20             System.out.println("result dispatcher-success");
21             return "dispatcher-success";
22         } else if (resultType.equalsIgnoreCase("redirect")) {
23             System.out.println("result redirect-success");
24             return "redirect-success";
25         } else if (resultType.equalsIgnoreCase("redirectAction")) {
26             System.out.println("result redirectAction-success");
27             return "redirectAction-success";
28         } else if (resultType.equalsIgnoreCase("chain")) {
29             System.out.println("result chain-success");
30             return "chain-success";
31         } else {
32             System.out.println("no match");
33         }
34
35         ServletActionContext.getRequest().setAttribute("resultType", this.resultType);
36
37         return "";
38     }
39 }

AccountAction.java

1 package com.dx.actions;
2
3 public class AccountAction {
4     public String execute(){
5         System.out.println("acction action chain");
6         return "success";
7     }
8 }

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

这里就简单说明,介绍,一遍自己可以学习使用。

时间: 2024-08-10 21:22:50

Struts2(六):ResultType的相关文章

struts2(六) 文件上传和下载

前面对文件下载提过一点点,这里正好要讲文件上传,就放在一起在说一遍. --WH 一.单文件上传 在没学struts2之前,我们要写文件上传,非常麻烦,需要手动一步步去获取表单中的各种属性,然后在进行相应的处理,而在struts2中就不需要了,因为有一个fileUpload拦截器帮我们全做完了.我们只需要添加一点点信息,就可以完成上传的功能. 1.Action中需要提供三个属性 File fieldName: //文件表单项名称,也就是上传控件所填写的name属性名 String fileCont

Struts2(六)struts2的异常处理与全局异常与结果

1.exception一般都继承Exception 例子: usernameException.class package com.liule.exception; public class usernameException extends Exception { private String message;//提示消息 public usernameException(String message) { super(message); this.message = message; } p

Struts2(十六)Json

一.JSON Json就是浏览器和服务器之间交换数据的一种轻量级对象 javaSctipt中类似的对象操作 $(function() { var person = { "name" : "张三", "age" : 21, "wife" : "李四" }; $("#msg").append("姓名:" + person.name+"<br/>&qu

二十六:Struts2 和 spring整合

二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot---->WEB-INF目录下新建一个目录lib,用于存放jar包(Struts2和spring整合所需jar包) 将项目名称为day29_02_struts2Spring,WebRoot---->WEB-INF下的lib目录下的所有jar包拷贝到新项目对应的位置,同时将spring的配置文件appl

深入struts2.0(六)--ActionProxy类

1.1     ActionProxy接口以及实现 ActionProxy在struts框架中发挥着非常重要的作用.通过webwork和xwork交互关系图可以看出,它是action和xwork中间的一层. 正因为ActionProxy的存在导致Action调用更加简洁.接下来我们一起研究下这个核心类. 1.1.1       ActionProxy接口方法 图 3.3.1 ActionProxy接口主要方法图 ActionConfig getConfig();该方法主要是获得创建ActionP

[struts2学习笔记] 第三节 创建struts 2 HelloWorld所需的六个步骤

本文地址:http://blog.csdn.net/sushengmiyan/article/details/40349201 官方文档:http://struts.apache.org/release/2.3.x/docs/hello-world-using-struts-2.html 本文作者:sushengmiyan ---------------------------------------------------------------------------------------

【struts2】名为chain的ResultType

1)基本使用 名称为"chain"的ResultType,在struts-default.xml里的配置如下: <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> chain是一种特殊的视图结果,用来将Action执行完之后链接到另一个Action中继续执行,新的Action使用上一个Action的上下文(ActionContext

菜鸟学SSH(十六)——Struts2内部是如何工作的

前面说完了Spring.Hibernate,很自然今天轮到struts了.struts的核心原理就是通过拦截器来处理客户端的请求,经过拦截器一系列的处理后,再交给Action.下面先看看struts官方的工作原理图: 图1 struts原理图 简单分析一下:首先客户端发来HttpServletRequest请求,传递给FilerDispatcher(ActionMapper是访问静态资源(struts的jar文件等)时用的,平时很少用),然后FilerDispatcher会为我们创建一个Acti

Struts2系列:(6)result-type和全局result

在(2)中到struts.xml中的package.action和result进行了简单介绍. 在(3)中到action进行了一些详细介绍. 在本节中,将对result进行一些详细介绍,主要包括两部分:result-type和全局的result. 1.result-type #代码角度#在Action类中,每个 action 方法均返回一个 String 类型的值, Struts 将根据这个值来决定响应什么结果. #配置角度#在struts.xml配置文件中,每个 Action 标签可包含多个