1

如何通过变量调用操作方法?为了更好地解释,此代码有效

<s:action name="indexController!loadData" executeResult="false" />

...但是另一个不起作用

<s:action var="mainController" name="indexController" />    
<s:action name="mainController!loadData" executeResult="false" />

...我也试过

<s:action var="mainController" name="indexController" />    
<s:action name="#mainController!loadData" executeResult="false" />

但它也不起作用。我需要第二种模式,因为我必须在页面上动态切换动作。

4

1 回答 1

0

name属性中,您需要强制使用OGNL评估%{}

尝试使用 Set 标签而不是 Action 标签

<s:set var="mainController" value="%{'indexController'}" />   
<s:action name="%{#mainController}!loadData" executeResult="false" />

或替代

<s:set var="mainController" value="%{'indexController!loadData'}" />
<s:action name="%{#mainController}" executeResult="false" />

或者

<c:set var="mainController" value="indexController" scope="request"/>
<s:action name="%{#request.mainController}!loadData" executeResult="false" />
于 2013-06-05T09:37:26.430 回答