如何在Struts 2上按变量调用Action方法?

时间:2013-06-05 08:54:11

标签: java struts2 action

如何通过变量调用操作方法?为了更好地解释,这段代码可以正常工作

<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" />

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

1 个答案:

答案 0 :(得分:0)

名称属性中,您需要使用%{}

强制执行 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" />