Struts2_result

  • result:
    • resultaction 节点的子节点
    • result 代表 action 方法执行后, 可能去的一个目的地
    • 一个 action 节点可以配置多个 result 子节点.
    • resultname 属性值对应着 action 方法可能有的一个返回值.
<result name="index">/index.jsp</result>
  • result 一共有 2 个属性, 还有一个是 type: 表示结果的响应类型
  • resulttype 属性值在 struts-default 包的 result-types 节点的 name 属性中定义.

常用的有
dispatcher(默认的): 转发. 同 Servlet 中的转发.

<result name="success" type="dispatcher">/success.jsp</result>

redirect: 重定向

<result name="login" type="redirect">/login.jsp</result>

redirectAction: 重定向到一个 Action
注意: 通过 redirect 的响应类型也可以便捷的实现 redirectAction 的功能!
ps:(
转发在服务器端完成的;重定向是在客户端完成的
转发的速度快;重定向速度慢
转发的是同一次请求;重定向是两次不同请求
转发不会执行转发后的代码;重定向会执行重定向之后的代码
转发地址栏没有变化;重定向地址栏有变化
转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成)

<result name="index" type="redirectAction">
  <param name="actionName">testAction</param>
  <param name="namespace">/atguigu</param>
</result>

OR

<result name="index" type="redirect">/atguigu/testAction.do</result>
<!-- 要重定向到的 Action -->
<package name="testPackage" namespace="/atguigu" extends="struts-default">
        <action name="testAction" 
            class="com.atguigu.struts2.action.TestAction">
            <result>/success.jsp</result>
        </action>
    </package>

chain: 转发到一个 Action
注意: 不能通过 type=dispatcher 的方式转发到一个 Action
只能是:

<result name="test" type="chain">
        <param name="actionName">testAction</param>
        <param name="namespace">/atguigu</param>
    </result>

不能是:

<result name="test">/atguigu/testAction.do</result>

新建:

package com.atguigu.struts2.action;

public class TestResultAction {

    private int number;

    public void setNumber(int number) {
        this.number = number;
    }

    public String execute(){

        String result = null;

        //根据请求参数 number 的值, 返回对应的 JSP 页面
        //1. 若 number 是 3 个整数, 返回 success.jsp 页面
        if(number % 4 == 0)
            result  = "success";

        //2. 若 number 除以 3 余 1, 返回 login.jsp
        else if(number % 4 == 1)
            result = "login";

        //3. 若 number 除以 3 余 2, 返回 index.jsp
        else if(number % 4 == 2)
            result = "index";

        else
            return "test";

        return result;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值