我使用Hibernate框架創建了一個java web應用程序。 在WEB-INF,我創建了一個新的文件:瓷磚 - defs.xml,下面是它的內容:apache tiles 2 JSPException包括路徑
<?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。 的index.jsp:
<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:insertDefinition name="Index"/>
而且IndexContent.jsp:
<div>Home</div>
在那之後,我創建了一個控制器封裝,並添加新的主頁的servlet:
String view = "home/Index.jsp";
RequestDispatcher rd = request.getRequestDispatcher(view);
rd.forward(request, response);
但是,當我跑,apache說:'HTTP狀態404 -/Project2 /'(Project2是項目名稱)。然後,我的Apache Tomcat日誌檢查,我發現了一個錯誤:
'SEVERE: Servlet.service() for servlet [Home] in context with path [/Project2] threw exception [org.apache.tiles.impl.CannotRenderException: JSPException including path '/layouts/layoutfront.jsp'.] with root cause javax.servlet.ServletException: File "/home/IndexContent.jsp" not found'
我沒有這個想法,我跟着一些教程如何與瓷磚的工作,但我仍然會被卡住。
/home/IndexContent.jsp是否存在? – Satya
是的,它的存在 – TPL