當您編寫<s:property value="myVariable" />
時,Struts在其「Value Stack」中查找屬性myVariable
。目前的行動在ValueStack中,這就是典型設置工作的原因。現在,在
<s:action name="actionName" executeResult="false">
<s:param name="switch">true</s:param>
</s:action>
<s:property value="myVariable" />
的情況時,執行最後一行actionName
動作已經執行,目前的行動是不是更主要的(「外」)之一。如果要訪問「內部」動作的屬性,可以使用以下幾種方法:docs:
要麼添加var
屬性,以便將執行的(內部)動作分配給變量,並且與# syntax引用它:
<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" />
免責聲明:我沒有測試這個
'myVariable'是'actionName'動作的一個屬性?你在's:action'元素內部還是外部(下面)使用'
'? – leonbloy是myVariable是actionName操作類中的一個屬性。 '
'在's:action'下面 – user1628194