struts2 两个action之间传递参数

坚持每天写博文,积累下开发中的点点滴滴。 struts2是个让人爱又让人恨的东东,爱的灵活的插件机制,恨得是有很多原本在servlet中很简单,很容易理解的东东,到了这儿就要绕N个弯,比如说action之间传值这个问题。 方式一:resutl 返回类型为chain

<!-- lang: xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
<!-- lang: xml -->
<!DOCTYPE struts PUBLIC
<!-- lang: xml -->
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
<!-- lang: xml -->
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- lang: xml -->
<struts>
<!-- lang: xml -->
    <package name="index" extends="struts-default">
<!-- lang: xml -->
        <action name="index_*" class="demo.IndexAction" method="{1}">
<!-- lang: xml -->
            <result name="redirectB" type="chain">
<!-- lang: xml -->
                    <pram name="actionName">c_doB</pram>
<!-- lang: xml -->
                     <pram name="username">${username}</pram>
<!-- lang: xml -->
                     <pram name="pwd">${pwd}</pram>
<!-- lang: xml -->
            </result>
<!-- lang: xml -->
        </action>
<!-- lang: xml -->
        <action name="c_*" class="demo.CAction" method="{1}">
<!-- lang: xml -->
            <result>jsps/main.jsp</result>
<!-- lang: xml -->
        </action>
<!-- lang: xml -->
    </package>
<!-- lang: xml -->
</struts>

chain 方式缺点多多,虽然可以实现该功能,但需要谨慎使用

2.较为常用的redirect方式

<!-- lang: xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<!-- lang: xml -->
<!DOCTYPE struts PUBLIC
<!-- lang: xml -->
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
<!-- lang: xml -->
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- lang: xml -->
<struts>
<!-- lang: xml -->
    <package name="index" extends="struts-default">
<!-- lang: xml -->
        <action name="index_*" class="demo.IndexAction" method="{1}">
<!-- lang: xml -->
            <result name="redirectB" type="redirectAction">
<!-- lang: xml -->
                c_doB.action?username=${username}&amp;pwd=${pwd}
<!-- lang: xml -->
            </result>
<!-- lang: xml -->
        </action>
<!-- lang: xml -->
        <action name="c_*" class="demo.CAction" method="{1}">
<!-- lang: xml -->
            <result>jsps/main.jsp</result>
<!-- lang: xml -->
        </action>
<!-- lang: xml -->
    </package>
<!-- lang: xml -->
</struts>

CAction源码:

<!-- lang: java -->
public class CAction extends ActionSupport {
<!-- lang: java -->
    private String username;
<!-- lang: java -->
    private String pwd;
<!-- lang: java -->

<!-- lang: java -->
    public String doB(){
<!-- lang: java -->
        System.out.println("userName:"+getUsername()+":"+getPwd());
<!-- lang: java -->
        return SUCCESS;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public String getUsername() {
<!-- lang: java -->
        return username;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public void setUsername(String username) {
<!-- lang: java -->
        this.username = username;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public String getPwd() {
<!-- lang: java -->
        return pwd;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public void setPwd(String pwd) {
<!-- lang: java -->
        this.pwd = pwd;
<!-- lang: java -->
    }
<!-- lang: java -->
}

IndexAction源码:

<!-- lang: java -->
public class IndexAction extends ActionSupport {
<!-- lang: java -->

<!-- lang: java -->
    private String username;
<!-- lang: java -->
    private String pwd;
<!-- lang: java -->

<!-- lang: java -->
    public String doA() {
<!-- lang: java -->
        setUsername("LiSi");
<!-- lang: java -->
        setPwd("12345");
<!-- lang: java -->
        return "redirectB";
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public String getUsername() {
<!-- lang: java -->
        return username;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public void setUsername(String username) {
<!-- lang: java -->
        this.username = username;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public String getPwd() {
<!-- lang: java -->
        return pwd;
<!-- lang: java -->
    }
<!-- lang: java -->

<!-- lang: java -->
    public void setPwd(String pwd) {
<!-- lang: java -->
        this.pwd = pwd;
<!-- lang: java -->
    }
<!-- lang: java -->
}

此种方式也有缺点,就是参数会以get的方式传递。所以action之间跳转不到万不得已最好不要用。

转载于:https://my.oschina.net/mrq/blog/132549

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值