Атрибуты области импорта JSTL

#jsp #import #scope #jstl

#jsp #импорт #область #jstl

Вопрос:

Я использую JSTL для импорта формы со своей главной страницы.

 <c:import url = "/import/form/registerForm.jsp" />
  

Главная страница получает атрибут с именем registerError от сервлета. Этот атрибут доступен на моей главной странице, но он исчезает в моем файле RegisterForm.jsp

 <c:if test = "${!empty registerError}">
    <div id = "error">
        <p><c:out value="${registerError}" /></p>
    </div>
</c:if>
  

Я отметил, что атрибуты могут быть переданы через import, но как метод GET. Есть ли какой-либо другой способ справиться с этой проблемой?

Ответ №1:

Просто используйте

 <jsp:include page="/import/form/registerForm.jsp"/>
  

<c:import> позволяет получать ресурс из любого места (включая ресурсы, внешние по отношению к веб-приложению) и, таким образом, генерирует новый запрос, отличный от исходного, для получения ресурса. <jsp:include> использует диспетчер запросов, и, таким образом, используется тот же запрос.

Комментарии:

1. Хорошо, спасибо! Но является ли <jsp:include> хорошей практикой сегодня? Или есть другие альтернативы этому решению?