Вложенный тег Struts с динамическими параметрами - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть старое приложение Struts 1, которое использует вложенный тег.Можно ли вставить динамический параметр во вложенный тег?Например,

<nested:select disabled="<c:out value='${requestScope.disableSelectBox}' />" />

Я также пытался сделать:

<nested:select disabled="${requestScope.disableSelectBox}" />

В обоих приведенных выше примерах атрибут disabled был установлен неправильно и был проигнорирован.Если я распечатываю значение с помощью ac: out, отображается правильное значение disableSelectBox:

<c:out value="${requestScope.disableSelectBox}" />

Коллега предложил мне использовать:

<nested:select disabled="<%=request.getAttribute("disableSelectBox"); %>" />

Проблема в том, что оносчитается плохой практикой использовать Java-скрипты на странице JSP.Есть ли способ встроить динамическую переменную во вложенный тег Struts 1?Переключение на Struts 2 не вариант.

Спасибо!

1 Ответ

1 голос
/ 30 сентября 2010

Struts 1 (насколько я помню) не может позволить вам сделать:

<nested:select disabled="<c:out value='${requestScope.disableSelectBox}' />" />

Поскольку он не может обрабатывать JSP-теги внутри любого из их объявлений атрибутов, проверьте, что nested:select disabled attribute требуется необходимо.

Но Struts действительно поддерживает скрипты EL и JSP (поэтому ваш коллега прав).JSP Scriptlet «отрендерит» значение <%=request.getAttribute("disableSelectBox"); %> и присвоит его <nested:select disabled="<%=request.getAttribute("disableSelectBox"); %>" />

Итак (если я предполагаю, что значения возвращают true или false,

<nested:select disabled="${requestScope.disableSelectBox}" />

и

<nested:select disabled="<%=request.getAttribute("disableSelectBox"); %>" />

будет отображаться как (если результаты возвращают true)

<nested:select disabled="true" />

перед отправкой в ​​Struts для отображения вложенного тега (извините за использование слова "render"Вы можете использовать перевод, если хотите).

...