Struts2学习笔记 | 关于struts.xml文件中的result节点

1.关于result节点

1.result是action节点的子节点
2.result代表action方法执行后,可能去的一个目的地
3.一个action节点可以配置多个result子节点


2.result节点的两个属性值

1.name属性

result的name属性值对应着action方法可能有的一个返回值

2.type属性

1.result的type属性值表示结果的响应类型
2.result的type属性在struts-default包的result-types节点的name属性中定义了。
3.比较常用的几个type属性值有:
dispatcher(默认的):转发(与Servlet中的转发一样)
redirect:重定向(与Servlet中的重定向一样)
redirectAction:重定向到一个Action
chain:转发到一个Action

4.注意:
通过redirect也可以间接的重定向到一个Action,详情看Demo
但是不能通过dispatcher的方式间接转发到一个Action。

一个Demo

根据一个请求参数的不同取值,分别转发、重定向、重定向到一个Action、转发到一个Action。

struts.xml文件:

<?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>
    <!-- 配置Struts可以受理的请求的扩展名 -->
    <constant name="struts.action.extension" value="action,do"></constant>

    <package name="default" extends="struts-default">
        <action name="testResult" class="struts2.action.TestResultAction">
            <!-- 转发 -->
            <result name="success" type="dispatcher">/success.jsp</result>
            <!-- 重定向-->
            <result name="index" type="redirect">/index.jsp</result>

            <!-- 重定向到一个Action -->
            <result name="login" type="redirectAction">
                <!-- 指明要重定向的Action -->
                <param name="actionName">testAction</param>
                <!-- 指明命名空间 -->
                <param name="namespace">/cerr</param>
            </result>
            <!--
                通过这样也可以重定向到一个Action
                <result name="login" type="redirect">/cerr/testAction.action</result>
            -->

            <!-- 转发到一个Action-->
            <result name="test" type="chain">
                <param name="actionName">testAction</param>
                <param name="namespace">/cerr</param>
            </result>
        </action>
    </package>

    <package name="testPackage" namespace="/cerr" extends="struts-default">
        <action name="testAction" class="struts2.action.TestAction">
            <result>/success.jsp</result>
        </action>
    </package>

</struts>

TestResultAction.java文件:

public class TestResultAction {
    private int number;

    public void setNumber(int number) {
        this.number = number;
    }
    public String execute(){
        String result = null;
        //根据请求参数number的值,作出不同的操作
        if(number % 4 == 0){
            result = "success";
        }else if(number % 4 == 1){
            result = "login";
        }else if(number % 4 == 2){
            result = "index";
        }else{
            result = "test";
        }
        return result;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值