を記述する<s:property value="myVariable" />
と、Struts は myVariable
その「値スタック」でプロパティを探します。現在のアクションは ValueStack にあるため、通常のセットアップが機能します。さて、の場合、
<s:action name="actionName" executeResult="false">
<s:param name="switch">true</s:param>
</s:action>
<s:property value="myVariable" />
最後の行が実行されると、actionName
アクションはすでに実行されています。現在のアクションはそれではなく、メイン (「外側」) のアクションです。「内部」アクションのプロパティにアクセスしたい場合は、いくつかの選択肢があり、そのうちの 2 つがdocsに示されています。
var
実行された (内部) アクションが変数に割り当てられるように属性を追加し、それを# 構文で参照します。
<s:action name="actionName" var="innerAction" executeResult="false">
<s:param name="switch">true</s:param>
</s:action>
<s:property value="#innerAction.myVariable" />
または、アクション メソッドで、プロパティ値を明示的にスコープに追加します (例: 属性)。
// in your inner action:
ServletActionContext.getRequest().setAttribute("myVariable", "blah blah");
<s:property value="#attr.myVariable" />
免責事項:私はこれをテストしていません