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

时间:2014-01-17 22:20:59

标签: java jsp struts2 ognl

现在,如果我在Struts2

中使用<s:if>标记,我可以得到任何想要的结果
    <s:if test="status==1">
         //do some stuff
    </s:if>

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

    <s:if test="action==addaction">
         //do some stuff
    </s:if>

3 个答案:

答案 0 :(得分:7)

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

<s:if test="#context['struts.actionMapping'].name=='addaction'">
   do some stuff
</s:if>

答案 1 :(得分:3)

由于安全原因,Struts版本2.3.34和2.5.13 #context不再可用(参见WW-4852) 作为解决方法,您可以使用#request

记录的<s:if test="#request['struts.actionMapping'].name=='addaction'"> do some stuff </s:if>
Service plan      | Entities per workspace | Entity values per workspace | Entity synonyms per workspace
Standard/ Premium | 1000                   | 100,000                     | 100,000
             Lite | 25                     | 100,000                     | 100,000

答案 2 :(得分:1)

试试这个

<s:if test='%{com.opensymphony.xwork2.ActionContext.name=="YourActionName"}'>
     //do some stuff
</s:if>