Переменная в атрибуте в пользовательском теге Struts - PullRequest
0 голосов
/ 12 сентября 2011

Я пытаюсь использовать переменную внутри пользовательского тега Struts примерно так:

for(String currentMacro : (List<String>)(request.getAttribute("individualMacros"))) {
    name = currentMacro.<some-operation>

<html:mce name = "hmtl_<%= name %>" />

Как то так. Но <% = name%> не заменяется значением переменной. Это работает, когда я использую переменную с чистыми тегами HTML.

Есть ли способ сделать это в этом случае?

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Используйте JSP EL (при условии JSP 2.0, и вы вводите «имя» в область видимости). Вы также можете проверить, разрешен ли TLD rtexprs.

<html:mce name="html_${name}"/>

Но зачем использовать скриптлеты? Там редко (когда-либо?) Хорошая причина.

0 голосов
/ 12 сентября 2011

Поскольку мы рассматриваем пользовательский тег, я предполагаю, что в файле TLD нет опции rtexprvalue, установленной в true для этого конкретного атрибута тега:

<attribute>
   <name>name</name>
   <rtexprvalue>true</rtexprvalue>
   .......
</attribute>

rtexprvalue указывает, что значение атрибута может динамически оцениваться во время выполнения.

Если установлено значение "false", это означает, что атрибут имеет статическое значение, которое оценивается как translation ; если установлено значение "true", это означает, что значение может быть определено динамически во время выполнения. По умолчанию установлено значение «false».

Если скриптлет не работает, это, скорее всего, означает, что rtexprvalue имеет значение false. Если вы не можете изменить это, выражения не будут работать с этим конкретным атрибутом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...