Переменные EL ссылаются на атрибут страницы, или запроса, или сеанса, или области приложения (каждая область проверяется в указанном порядке).Они не ссылаются на локальную переменную скриптлета.
Таким образом, поскольку у вас нет атрибута в любой области с именем s1
, s2
, a
или dObj
, используются значения по умолчанию (0
).
Результаты будут такими, как вы ожидаете, если код скриптлета будет следующим:
<%
String s1 = "aaa ";
String s2 = "22";
Double dObj = new Double(3.5);
int a;
a = 12;
request.setAttribute("s1", s1);
request.setAttribute("s2", s2);
request.setAttribute("dObj", dObj);
request.setAttribute("a", a);
%>
В хорошо спроектированном приложении эти атрибуты будут установлены сервлетом, который отправитваш JSP или тегом JSP (например, <c:set>
), но не скриптлетом.Скриплеты больше не должны использоваться.