Ссылка на атрибут для простого тега и Struts 2.x - PullRequest
2 голосов
/ 01 июня 2011

Я пишу простой тег, который содержит 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 Ответ

4 голосов
/ 02 июня 2011
<s:set name="menuName" value="%{#attr['menuName']}" /> 
<s:set name="it" value="%{#application['tools'][#menuName]}" />

Никогда не знал о #attr прежде, как аккуратно

...