Переменные на jsp страницах с “включенными” страницами

В моем случае, я скачал проект из Интернета, после распаковки проекта некоторые файлы были заблокированы, просто разблокируйте файлы и попробуйте снова, затем проблема была решена.

52
задан Omar Kooheji 2 June 2009 в 22:06
поделиться

3 ответа

В JSP есть два способа включения других страниц jsp.

<%@include file="include.jsp"%>

и

<jsp:include page="include.jsp" />

Если вы используете первый, то любая переменная, объявленная в родительском JSP, будет в области включения .jsp (конечно, Eclipse не увидит этого, как вы догадались), поскольку он фактически копируется компилятором.

Если вы используете второй подход, включение выполняется во время выполнения, и страница включения имеет свою собственную область действия.

То же самое для импорта. Хотя можно безопасно импортировать их с резервированием на странице включения.

Если я использую первые, я предпочитаю добавлять к ним суффикс .jspf для обозначения фрагмента JSP. Затем я могу отключить некоторые предупреждения Eclipses в файлах фрагментов. Но в целом я стараюсь избегать использования этого метода и предпочитаю второй подход.

Дополнительную информацию можно найти в документации здесь:

84
ответ дан 7 November 2019 в 09:21
поделиться

С объектно-ориентированной точки зрения я бы рекомендовал не полагаться на область видимости переменной в parent.jsp, включенной в child.jsp. Это связано с тем, что, когда я включаю фрагмент в jsp, я, как правило, хочу повторно использовать этот фрагмент во многих разных местах. Например, если у меня есть child.jsp, я могу использовать его в parent1.jsp, а также в parent2.jsp. В этом случае наследование лучше не изменять.

4
ответ дан 7 November 2019 в 09:21
поделиться

Используйте следующее, если вы хотите использовать переменную в пути включаемой страницы:

<% pageContext.include("/cities/" + (String) request.getAttribute("country_code") + ".jsp"); %>
7
ответ дан 7 November 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: