Struts2 redirectAction で別ネームスペースのアクション呼び出し(パラメータ付き)
struts2 では struts1 と同様に、Action処理後にリダイレクトできる。struts.xmlでresultのtypeをredirectActionに設定する。
resultのparamを指定して、actionNameにアクション名とパラメータ定義が書ける。パラメータの値はActionクラスから${・・・}と書くことで取得できる。ネームスペースは省略すれば現在のActionのネームスペースだが、namespaceを明示することで指定できる。
<package name=”sample” namespace=”/Context” extends=”struts-default”>
<action name=”test” class=”com.example.TestAction”>
<result name=”res” type=”redirectAction”>
<param name=”actionName”>other?param1=${model.prmStr}</param>
<param name=”namespace”>/sub</param>
</result>
</action>
</package>
<package name=”main” namespace=”/sub” extends=”struts-default”>
<action name=”other” class=”com.example.OtherAction”></action>
</package>
以下のパスにリダイレクトされる。
(コンテキストルート)/sub/other.action?param1=(TestActionアクションからgetModel().getPrmStr()した値)