天天看点

Struts2 如何在两个 action 间传递参数

在使用了struts2的网站中,我要实现这样一个功能:

在一个页面中发布一条句子,然后立刻跳转到该句子的显示页,这就牵涉到两个action之间的跳转传参问题(我第二个action必须知道前一个action传过来的句子id才能显示正确的页面)

实现方式网上说的都不太清楚,其实很简单,首先在第一个页面将要传的参数定义为一个属性(即包好了​

​get​

​​和​

​set​

​​方法)

如下代码假设是传​​

​id​

​:

private long sentenceId;

public long getSentenceId() {
    return sentenceId;
}

public void setSentenceId(long sentenceId) {
    this.sentenceId = sentenceId;
}      

这样就行了,第一个action就不需要改了,然后修改​

​struts.xml​

​​

我采用的跳转方式是​​

​redirectAction​

​​,然后在里面设置两个参数,其中​

​actionName​

​​是要跳转的第二个​

​action​

​​,而​

​sentenceId​

​​就是要传的参数,注意​

​${}​

​里的内容必须和上面定义的属性名一样。

<action name="XXX" class="XXX" method="execute">
    <result name="success" type="redirectAction">
        <param name="actionName">sentence</param>
        <param name="sentenceId">${sentenceId}</param>
    </result>
</action>      

在第二个action中,也要定义一个属性(有​

​set​

​​和​

​get​

​​方法),而这个属性名要和上面设置的​

​param name="xxx"​

​​这个的​

​name​

​一样。

继续阅读