简体   繁体   English

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

[英]How invoke Action method by variable on Struts 2?

How can I invoke action method by variable? 如何通过变量调用动作方法? To explain better, this code works 为了更好地解释,此代码有效

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

... But this other one doesn't work ...但是这另一个不起作用

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

... I also tried ...我也尝试过

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

But it doesn't work too. 但这也不起作用。 I need the second mode, because I must switch action dynamically on the page. 我需要第二种模式,因为我必须在页面上动态切换动作。

In the name attribute you need to force the OGNL evaluation with %{} 名称属性中,您需要使用%{}强制OGNL评估

Try using Set tag instead of Action tag 尝试使用设置标签代替操作标签

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

or in alternative 或替代

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

or 要么

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM