Ответ 1
Добавьте библиотеку JSTL и объявите основной taglib:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
эквивалент JSTL
<% if (request.getAttribute("error") != null) { %>
является
<c:if test="${not empty error}">
Я пытаюсь проверить в JSTL, если атрибут сеанса пуст. Однако атрибут пуст. JSTL рассматривает его как непустой атрибут.
Это жесткий код, который я пытаюсь заменить JSTL. Этот код работает правильно:
<% if (request.getAttribute("error") != null) { %>
<div class="alert alert-danger">
<strong>Oh snap, something wrong, maybe the following error could help you out?<br /></strong>
<%= request.getAttribute("error")%>
</div>
<% } %>
Вот как я заменил его на JSTL. Если флажок установлен, атрибут ошибки не пуст, но он пуст.
<c:if test="${not empty sessionScope.error}">
<div class="alert alert-danger">
<strong>Oh snap, something wrong, maybe the following error could help you out?<br /></strong>
<c:out value="${sessionScope.error}" />
</div>
</c:if>
Добавьте библиотеку JSTL и объявите основной taglib:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
эквивалент JSTL
<% if (request.getAttribute("error") != null) { %>
является
<c:if test="${not empty error}">
Я пытаюсь проверить в JSTL, если session attribute
пуст
Вы должны проверить область сеанса не в области запроса.
Это должно быть
<c:if test="${not empty sessionScope.error}">
вместо
<c:if test="${not empty requestScope.error}">
Если вы не уверены в области, то используйте без области видимости во всей области сверху вниз (страница, запрос, сеанс, наконец, в приложении)
<c:if test="${not empty error}">