Это язык выражений, встроенный, который упрощает доступ к данным и взаимодействие с ними в JSP страницах. JSP EL позволяет обращаться к объектам и свойствам в различных областях видимости (например, request, session, application) с помощью простого синтаксиса, аналогичного JavaScript.
🚩Основные особенности
🟠Простота использования
EL позволяет обращаться к данным и свойствам объектов с помощью простого синтаксиса
${...}, что упрощает код JSP страниц.🟠Области видимости (scopes)
EL автоматически ищет объекты и их свойства в различных областях видимости: page, request, session, application.
🟠Доступ к свойствам JavaBeans
EL поддерживает доступ к свойствам JavaBeans и методам геттеров.
🟠Поддержка операторов и функций
EL поддерживает различные операторы (арифметические, логические, сравнения) и может использоваться для выполнения простых логических операций и выражений.
🟠Безопасность и защита от ошибок
EL защищает от ошибок NullPointerException, возвращая пустую строку или значение по умолчанию, если объект или свойство не найдено.
🚩Основные элементы
🟠Обращение к свойствам объектов
Использование точечной нотации для доступа к свойствам объектов. Пример:
${user.name}🟠Обращение к элементам коллекций и массивов
Использование квадратных скобок для доступа к элементам коллекций и массивов. Пример:
${users[0].name} или ${map['key']}🟠Операторы
Арифметические операторы:
+, -, *, /, % Логические операторы:
&&, ||, !
Операторы сравнения: ==, !=, <, >, <=, >=
Условный оператор: ?:🟠Функции
EL поддерживает вызов функций, определенных в JSTL (JavaServer Pages Standard Tag Library) и пользовательских тегах.
🚩Примеры использования
Доступ к свойствам объекта
<%
User user = new User();
user.setName("John Doe");
request.setAttribute("user", user);
%>
<p>Username: ${user.name}</p>
Доступ к элементам коллекции
<%
List<User> users = new ArrayList<>();
users.add(new User("John Doe"));
users.add(new User("Jane Smith"));
request.setAttribute("users", users);
%>
<c:forEach var="user" items="${users}">
<p>User: ${user.name}</p>
</c:forEach>
Использование операторов
<%
int num1 = 5;
int num2 = 10;
request.setAttribute("num1", num1);
request.setAttribute("num2", num2);
%>
<p>Sum: ${num1 + num2}</p>
<p>Is num1 less than num2? ${num1 < num2}</p>
🚩Интеграция с JSTL (JavaServer Pages Standard Tag Library)
JSP EL тесно интегрирован с JSTL, что позволяет использовать различные теги JSTL для выполнения общих задач.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
User user = new User();
user.setName("John Doe");
request.setAttribute("user", user);
%>
<c:if test="${user.name != null}">
<p>User is logged in as ${user.name}</p>
</c:if>
🚩Плюсы
➕Чистый и понятный код
EL позволяет писать более чистый и читаемый код по сравнению с использованием скриплетов.
➕Разделение логики и представления
EL способствует лучшему разделению логики и представления, оставляя JSP страницы сфокусированными на отображении данных.
➕Легкость поддержки и тестирования
Код, использующий EL, легче поддерживать и тестировать, поскольку он не смешивает бизнес-логику с представлением.
➕Безопасность
EL обеспечивает защиту от ошибок, связанных с отсутствующими или нулевыми значениями.
Ставь 👍 и забирай 📚 Базу знаний