s:actionによる呼び出し

Struts2で他のアクションを s:action で呼び出した場合、呼び出されたアクション側で元のValueStackは参照できるが、名前付き変数は参照できないようだ。

名前付き変数とは

<s:set name="namedParam" value="'test'"/>

などとして名前をつけた変数の事を指している。

では渡したい場合はどうするか?普通にValueStackで参照できるようにするか、または次のようにして渡すことが出来た。

呼び出し側では次のようにリクエストの属性に保存

<s:set name="" value="#request.namedParam='test'"/>

呼ばれたアクション側のJSPでは次のように参照できる。

<s:property value="%{ #request.namedParam }"/>

これはリクエストの属性を介してデータを渡したイメージで、セッションなどの消費は無い。

ちょっとTIPS: #request.namedParam は #request['namedParam'] と同じ
ちょっとTIPS2: もちろん、actionのparamとして指定してもパラメータを渡すことが出来る