在使用了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
一样。
然后就可以成功获取啦,这也就是OGNL
的一个小语法罢