我使用 Hibernate 框架创建了一个 Java Web 应用程序。在WEB-INF中,我新建了一个文件:tiles-defs.xml,里面的内容如下:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name="Page" template="/share/layout.jsp">
<put-attribute name="title" value="Page" />
<put-attribute name="header" value="/share/header.jsp" />
</definition>
<definition name="Index" extends="Page">
<put-attribute name="title" value="Vnmart" />
<put-attribute name="main" value="/home/IndexContent.jsp"/>
</definition>
</tiles-definitions>
在 web.xml 中,我添加了一些行:
<context-param>
<param-name>
org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-defs.xml
</param-value>
</context-param>
<listener>
<listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
</listener>
在网页文件夹中,我创建了包含 2 个 jsp 文件的主文件夹:Index.jsp 和 IndexContent.jsp。索引.jsp:
<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:insertDefinition name="Index"/>
和 IndexContent.jsp:
<div>Home</div>
之后,我创建了一个控制器包,并添加了新的 Home servlet:
String view = "home/Index.jsp";
RequestDispatcher rd = request.getRequestDispatcher(view);
rd.forward(request, response);
但是当我运行时,apache 说:'HTTP Status 404 - /Project2/'(Project2 是项目的名称)。然后,我检查了 Apache Tomcat Log,我发现了一个错误:
'严重:servlet [Home] 的 Servlet.service() 在路径 [/Project2] 的上下文中引发异常 [org.apache.tiles.impl.CannotRenderException: JSPException,包括路径'/layouts/layoutfront.jsp'。] 根本原因javax.servlet.ServletException:找不到文件“/home/IndexContent.jsp”'
我对此一无所知,我遵循了一些如何使用瓷砖的教程,但我仍然被卡住了。