Struts 2 <s:if>标记如何在jsp中获取要评估的动作名称

use*_*520 3 java jsp struts2 ognl

现在,如果我<s:if>在Struts2中使用标记,我可以得到任何想要的结果

    <s:if test="status==1">
         //do some stuff
    </s:if>
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得当前执行的动作,我期待着

    <s:if test="action==addaction">
         //do some stuff
    </s:if>
Run Code Online (Sandbox Code Playgroud)

Rom*_*n C 7

您可以从上下文中获取操作名称

<s:if test="#context['struts.actionMapping'].name=='addaction'">
   do some stuff
</s:if>
Run Code Online (Sandbox Code Playgroud)

  • 对于struts 2.3.34及以上版本使用:`#request ['struts.actionMapping'].name` (2认同)

sam*_*zed 5

由于出于安全原因,Struts 版本 2.3.34 和 2.5.13#context不再可用(请参阅WW-4852 ),您可以使用此处#request记录的解决方法

<s:if test="#request['struts.actionMapping'].name=='addaction'">
   do some stuff
</s:if>
Run Code Online (Sandbox Code Playgroud)