Оценка EL в тегах - PullRequest
       23

Оценка EL в тегах

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

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

<%! String sName; %>
<%  sName="ABC"; %>
<H3> Hello <c:out value="${sName}"/> </H3>
<H3> Hello <c:out value="ABC"/> </H3>

Что здесь отсутствует или пошло не так?
Заранее спасибо.

1 Ответ

3 голосов
/ 28 сентября 2010

Когда вы пишете ${sName}, это не значит, что страница ищет локальную переменную с именем sName. Локальные переменные у вас нематериальные.

Вы можете установить sName для последующего использования с чем-то вроде request.setAttribute("sName", "some value") из скриптлета. Или вы можете использовать тег JSTL: <c:set var="sName" value="some value"/>.

Также есть возможность использовать скриптлет для вывода значения вашей локальной переменной, как вы заметили: <%= sName %>

...