Можно ли включить дополнительные файлы JSP в качестве прелюдии и CODA по определенному пути? - PullRequest
0 голосов
/ 09 июля 2019

Я хочу, чтобы все страницы JSP, соответствующие шаблонам URL (например, * .do), включали другие файлы JSP в качестве прелюдии и кода.

Например, если пользователь пытается подключиться в /main.do, сервер Tomcat должен предоставить страницу, которая состоит из /view/prelude.jsp (в качестве заголовка), /view/main.jsp (в качестве основного content) и /view/footer.jsp (в качестве кода). Если он попытается подключиться в /login.do, сервер должен предоставить страницу, которая состоит из /view/prelude.jsp, /view/login.jsp и /view/coda.jsp.

.

Я написал web.xml, но он не работал. Обратите внимание, что «AddressController.class», упомянутый в приведенном ниже коде, перенаправляет URL-адрес в нужный конкретный файл JSP.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    xmlns:my="http://jakarta.apache.org/tomcat/jsp2-example-taglib"
    version="3.0">
    <display-name>My Project</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.do/url-pattern>
            <include-prelude>view/prelude.jsp</include-prelude>
            <include-coda>view/coda.jsp</include-coda>
        </jsp-property-group>
    </jsp-config>
    <servlet>
        <servlet-name>AddressController</servlet-name>
        <servlet-class>Controller.AddressController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AddressController</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

Теперь я понимаю, почему приведенный выше код не работает, потому что невозможно использовать jsp-property-group и сервлет в одном шаблоне URL. Однако я не знаю, как это исправить.

...