引用简单标记和Struts 2.x的属性

时间:2011-06-01 14:18:24

标签: struts2 el ognl custom-tags

我正在编写一个包含4个属性的简单标记:

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ attribute name="menuName" description="Name of Major Menu" required="true" %>
<%@ attribute name="menuSize" description="Number of Items In Menu" required="true" type="java.lang.Integer" %>
<%@ attribute name="menuImage" description="Icon for Image" required="true" %>
<%@ attribute name="menuNumber" description="Order of Positioning" required="true" %>

Struts 2标记中有一点我需要引用其中一个属性,如下所示:

<s:set name="it" value="%{#application['tools'][${menuName}]}" />

所以你看到我正在根据传入的菜单名称在OGNL表达式中进行查找。从我看到的所有示例中,EL是引用属性menuName的常用方法,但在Struts 2.x中出于安全原因,EL已被禁用。

有没有办法引用我需要引用的属性。我真的不想考虑任何涉及我转到以前版本的jstl或struts的解决方案。

1 个答案:

答案 0 :(得分:4)

<s:set name="menuName" value="%{#attr['menuName']}" /> 
<s:set name="it" value="%{#application['tools'][#menuName]}" />

以前从不知道#attr,多么整洁