Все три варианта шаблона - <%@include>
, <jsp:include>
и <%@tag>
действительны, а все три охватывают разные варианты использования.
С помощью <@include>
парсер JSP встраивает содержимое включенного файла в JSP перед компиляцией (аналогично C #include
). Вы должны использовать эту опцию с простым статическим контентом: например, если вы хотите включить элементы заголовка, нижнего колонтитула или навигации на каждую страницу своего веб-приложения. Включенный контент становится частью скомпилированного JSP, и во время выполнения нет никаких дополнительных затрат.
<jsp:include>
(и JSTL <c:import>
, который является похожим и даже более мощным) лучше всего подходят для динамического контента. Используйте их, когда вам нужно включить контент с другого URL-адреса, локального или удаленного; когда ресурс, который вы включаете, сам по себе является динамическим; или когда включенное содержимое использует переменные или определения bean-компонентов, которые конфликтуют с включенной страницей. <c:import>
также позволяет хранить включенный текст в переменной, которую вы можете дополнительно манипулировать или использовать повторно.
Использовать файлы тегов, когда вы хотите создать многоразовые компоненты пользовательского интерфейса.
Использовать файлы тегов, если вы хотите создать многоразовые компоненты пользовательского интерфейса , Если у вас есть список виджетов, скажем, и вы хотите перебирать виджеты и отображать свойства каждого (в таблице или в форме), вы должны создать тег. Теги могут принимать аргументы, используя <%@tag attribute>
, и эти аргументы могут быть либо обязательными, либо необязательными - несколько похожими на параметры метода.
Файлы тегов - это более простой, основанный на JSP механизм написания библиотек тегов, который (pre JSP 2.0) вам пришлось писать с использованием Java-кода. Гораздо чище писать файлы тегов JSP, когда в теге много рендеринга: вам не нужно смешивать Java и HTML-код, как вам нужно было бы, если бы вы написали свои тэги в Java.