Как оценить переменную скриптлета в EL?

Мне было интересно, есть ли способ использовать JSP в инструкции <c:if>.

E.g.

<c:if test="${ param.variable1 == 'Add' <% JSP variable clause %>}">

Поэтому я хочу, чтобы моя переменная JSP также проверялась.

Какие-либо предложения? Я пытался по незнанию просто вставить пункт, очевидно, это не сработало.

Спасибо


person urema    schedule 11.05.2011    source источник


Ответы (1)


Итак, вы хотите оценить переменную scriptlet в EL? Сохраните его как атрибут запроса.

<%
    String var = "some";
    request.setAttribute("var", var);
%>

<c:if test="${param.variable1 == 'Add' && var == 'some'}">

Однако это не имеет смысла. Вам следует вообще избегать скриптлетов и используйте JSTL/EL для подготовки этой переменной. Итак, если вы сделаете функциональное требование более ясным, например. "Как мне это сделать (вставить фрагмент кода scriptlet) с помощью JSTL/EL?", тогда мы сможем предложить правильный подход.

Например, вы можете использовать <c:set> для установки переменной в области EL.

<c:set var="var" value="some" scope="request" />

Смотрите также:

person BalusC    schedule 11.05.2011
comment
Просто пытаясь поэкспериментировать, я попытался не добавить его в область запроса, полагая, что он все равно будет доступен в области страницы. Поэтому я явно запросил его из области страницы, используя в EL: pageScope.var. Конечно же, это не сработало. Как ни странно, при простом использовании var в EL он работает без необходимости помещать переменную в код скриптлета в область запроса. Что мне не хватает? - person Marcus Junius Brutus; 06.11.2016
comment
Зачем использовать контекст запроса? Проще, локальнее <% pageContext.setAttribute("var", "some"); %> - person Per Lindberg; 31.01.2019