如何通过变量调用操作方法?为了更好地解释,这段代码可以正常工作
<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" />
但它也不起作用。我需要第二种模式,因为我必须在页面上动态切换动作。
答案 0 :(得分:0)
在名称属性中,您需要使用%{}
尝试使用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" />