Я хочу, чтобы все страницы 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. Однако я не знаю, как это исправить.