В прошлом уроке мы извлекали созданный в контроллере бин с помощью actioBean
.
Чтобы для создания и получения бина не писать вот так:
<jsp:useBean id=”someuser” class=”com.someclasses.User” scope=”application”/>
<jsp:getProperty name=”someuser” property=”name”/>
извлекать атрибуты скоупов можно просто используя Expression language.
Изменим View из предыдущего урока вот таким образом:
Запускаем контроллер:

Он, опять таки, создает атрибут с именем someuser
, в котором находиться объект класса User
, извлеченный контроллером через модель.
Переходим на View и видим, что Expression Language сработал и вывелось имя из объекта в аттрибуте someuser
:

Конкретный скоуп
По дефолту (как было выше) проверяются все атрибуты всех скоупов, пока не найдет someuser
, но можно задать скоуп, в котором хотим искать. В нашем случае скоуп контекста (applicationScope
)
Пример программы:
Вывод такой же:

Другие возможности EL
Также с помощью EL можно делать много чего другого. Смотри пример.
Изменим контроллер:
Hello!!
“); //Добавляем список в атрибут контекста //и он будет доступен на View. С этим списком //можно будет работать с помощью EL req.getServletContext().setAttribute(“arrlist”,arrlist); Cookie cokie = new Cookie(“name”,”Jonny”); //Этот cookie извлечен на view с помощью EL resp.addCookie(cokie); } }Изменим View:
Откроем страницу контроллера:

Откроем View:

Отключение EL на странице
С помощью <%@ page isELIgnored="false"%>
можно отключить все EL выражения на странице.
Поставив перед конкретным EL выражением "\\"
можно отключить какое либо конкретное EL выражение
Пример программы:
Ясное дело, если мы откроем эту страницу, на ней ничего не будет.
Выводы:
После изучения MVC теперь можно лучше понять зачем нужны jsp.
Java код на jsp страницах использовать крайне не рекомендуется.
Java код лучше пусть используется в контроллере.
На View используются только экшн теги, EL и еще стандартная библиотека тегов jsp, о них позже. Эти инструменты лучше понятны html разработчику, который делает View, а java код разработчику контроллера