Автоматически включать JSP в каждый JSP

Я хотел бы упростить свой JSP еще дальше, прозрачно включив их. Например, это строка, которую я хотел бы удалить:

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

Файл include.jsp в основном объявляет все библиотеки тегов, которые я использую. Я запускаю это на WebSphere 6.0.2. Я верю и уже пробовал эту конфигурацию:

<!--    Include this for every JSP page so we can strip an extra line from the JSP  -->
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.htm</url-pattern>
            <!--<include-prelude>/jsp/common/include.jsp</include-prelude>-->
            <include-coda>/jsp/common/include.jsp</include-coda>
        </jsp-property-group>
    </jsp-config>

Оба include-prelude и include-coda не работали.

Я читал, что другие пользователи WebSphere не смогли его запустить и запустить; однако пользователи tomcat смогли.

Ответ 1

jsp-property-group был введен в JSP 2.0 (i.o. Servlet 2.4). Websphere 6.0 - Servlet 2.3.

Итак, у вас есть 3 варианта:

  • Забудьте об этом.
  • Обновление веб-страницы.
  • Заменить Websphere.

Ответ 2

Я не уверен, какая версия спецификации Servlet была введена... возможно ли, что контейнер сервлета Websphere не поддерживает его?

В любом случае, для такого рода задач есть гораздо более приятный сторонний инструмент под названием SiteMesh. Это позволяет вам составлять страницы точно так, как вы описываете, но очень гибко. Рекомендуется.

Ответ 3

Вы можете попробовать написать фильтр, который вызывает

getRequestDispatch( "path-to-jsp-to-include" ).include( req, res )