Struts2学习(四)【结果跳转方式】

来源:互联网 发布:勇士雷霆g5数据 编辑:程序博客网 时间:2024/06/07 01:10

一、result的类型

打开默认配置文件 struts2-core-2.5.13.jar!\struts-default.xml,这里面有 result 的定义

<result-types>    <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>    <result-type name="dispatcher" class="org.apache.struts2.result.ServletDispatcherResult" default="true"/>    <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>    <result-type name="httpheader" class="org.apache.struts2.result.HttpHeaderResult"/>    <result-type name="redirect" class="org.apache.struts2.result.ServletRedirectResult"/>    <result-type name="redirectAction" class="org.apache.struts2.result.ServletActionRedirectResult"/>    <result-type name="stream" class="org.apache.struts2.result.StreamResult"/>    <result-type name="velocity" class="org.apache.struts2.result.VelocityResult"/>    <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>    <result-type name="plainText" class="org.apache.struts2.result.PlainTextResult" />    <result-type name="postback" class="org.apache.struts2.result.PostbackResult" /></result-types>
属性 说明 chain 用 来 处 理Action链 , 被 跳 转 的 Action 中 仍 能 获 取上个页面的值,如 request信息。 dispatcher 用 来 转 向 页 面 , 通 常 处 理 jsp, 足 默 认 的 结 果 类型 。 freemarker 用来整合 FreeMarker校板结果类型。 httpheader 用来处理特殊的 HTTP行为结果类型。 redirect 重定向 到 一 个 URL, 被 跳 转 的 页 面 中 丢 失 传 递 的信息。 redirectAction 重定向到一个 Action,跳转的页面中丢失传递的信怠。 stream 向浏览器发送 InputStream对象,通常用来处理文件下载,还可用于Ajax数据。 velocity 用来整合Velocity模板结果类型。 xslt 用来整合 XML/ XSLT结果类型。 plainText 显示原始文件内容,例如文件源代码。 postback 使得当前请求参数以表单形式提交

常用到是下面四种

chain

dispatcher

redirect

redirectAction


二、转发

转发我们使用 dispatcher ,它也是默认的方式,下面我们实现转发的测试。

2.1 DemoResult1Action

package com.qwm.struts2_2.a_result;import com.opensymphony.xwork2.ActionSupport;/** * @author: wiming * @date: 2017-09-18 17:47:33  星期一 * @decription: */public class DemoResult1Action  extends ActionSupport{    @Override    public String execute() throws Exception {        System.out.println(this.getClass().getSimpleName());        return SUCCESS;    }}

2.2 配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"        "http://struts.apache.org/dtds/struts-2.5.dtd"><struts>    <package name="resulttest" namespace="/" extends="struts-default">        <!--转发-->        <action name="DemoResult1Action" class="com.qwm.struts2_2.a_result.DemoResult1Action">            <result name="success" type="dispatcher">/hello.jsp</result>        </action>    </package></struts>

2.3 图示

image


三、重定向

重定向我们使用 redirect ,下面我们实现重定向的测试。

3.1 DemoResult2Action

package com.qwm.struts2_2.a_result;import com.opensymphony.xwork2.ActionSupport;/** * @author: wiming * @date: 2017-09-18 17:47:33  星期一 * @decription: */public class DemoResult2Action extends ActionSupport{    @Override    public String execute() throws Exception {        System.out.println(this.getClass().getSimpleName());        return SUCCESS;    }}

3.2 配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"        "http://struts.apache.org/dtds/struts-2.5.dtd"><struts>    <package name="resulttest" namespace="/" extends="struts-default">        <!--重定向-->        <action name="DemoResult2Action" class="com.qwm.struts2_2.a_result.DemoResult2Action">            <result name="success" type="redirect">/hello.jsp</result>        </action>    </package></struts>

3.3 图示

这里写图片描述


四、转发到Action

转发到Action我们使用 chain。使用这个,我们的result会有不同,如下

<result name="success" type="chain">    <!-- 转发到的action的名字 -->    <param name="actionName">DemoResult1Action</param>    <!-- 转发到的action所在的命名空间 -->    <param name="namespace">/</param></result>

下面我们实现转发Action的测试。

4.1 DemoResult3Action

package com.qwm.struts2_2.a_result;import com.opensymphony.xwork2.ActionSupport;/** * @author: wiming * @date: 2017-09-18 17:47:33  星期一 * @decription: */public class DemoResult3Action extends ActionSupport{    @Override    public String execute() throws Exception {        System.out.println(this.getClass().getSimpleName());        return SUCCESS;    }}

4.2 配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"        "http://struts.apache.org/dtds/struts-2.5.dtd"><struts>        <!-- 转发到Action -->        <action name="DemoResult3Action" class="com.qwm.struts2_2.a_result.DemoResult3Action">            <result name="success" type="chain">                <!-- action的名字 -->                <param name="actionName">DemoResult1Action</param>                <!-- action所在的命名空间 -->                <param name="namespace">/</param>            </result>        </action>    </package></struts>

4.3 图示

这里写图片描述


五、重定向到Action

重定向到Action我们使用 chain。使用这个,我们的result会有不同,如下

<result name="success" type="chain">    <!-- 重定向到的action的名字 -->    <param name="actionName">DemoResult1Action</param>    <!-- 重定向到的action所在的命名空间 -->    <param name="namespace">/</param></result>

下面我们实现重定向到Action的测试。

5.1 DemoResult4Action

package com.qwm.struts2_2.a_result;import com.opensymphony.xwork2.ActionSupport;/** * @author: wiming * @date: 2017-09-18 17:47:33  星期一 * @decription: */public class DemoResult4Action extends ActionSupport{    @Override    public String execute() throws Exception {        System.out.println(this.getClass().getSimpleName());        return SUCCESS;    }}

5.2 配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"        "http://struts.apache.org/dtds/struts-2.5.dtd"><struts>    <package name="resulttest" namespace="/" extends="struts-default">        <!-- 重定向到Action -->        <action name="DemoResult4Action" class="com.qwm.struts2_2.a_result.DemoResult4Action">            <result name="success" type="redirectAction">                <!-- 重定向到的action的名字 -->                <param name="actionName">DemoResult1Action</param>                <!-- 重定向到的action所在的命名空间 -->                <param name="namespace">/</param>            </result>        </action>    </package></struts>

5.3 图示

这里写图片描述

原创粉丝点击