Ответ 1
JSTL переменные на самом деле являются атрибутами, и по умолчанию они ограничены уровнем контекста страницы.
В результате, если вам нужно получить доступ к значению переменной JSTL в скриптлете, вы можете сделать это, вызвав методgetAttribute()
соответствующим образом (обычноpageContext
и запрос).
resp = resp + (String)pageContext.getAttribute("test");
Полный код
<c:set var="test" value="test1"/>
<%
String resp = "abc";
resp = resp + (String)pageContext.getAttribute("test"); //No exception.
out.println(resp);
%>
Обновить
Но почему это исключение приходит ко мне.
A JSP scriptlet используется для содержания любого фрагмента кода, который действителен для языка сценариев, используемого на странице. Синтаксис для скриптлета выглядит следующим образом:
<%
scripting-language-statements
%>
Когда язык сценариев установлен в java, скриптлет преобразуется в фрагмент инструкции языка программирования Java и вставляется в сервисный метод сервлета страниц JSP.
В сценариях вы можете написать Java-код и ${test}
в не Java-коде.
Не связано