3

Hibernateフレームワークを使用してJavaWebアプリケーションを作成します。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>

Webページフォルダに、Index.jspとIndexContent.jspの2つのjspファイルを含むホームフォルダを作成しました。Index.jsp:

<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:insertDefinition name="Index"/>

そしてIndexContent.jsp:

<div>Home</div>

その後、コントローラーパッケージを作成し、新しいホームサーブレットを追加しました。

String view = "home/Index.jsp";
RequestDispatcher rd = request.getRequestDispatcher(view);
rd.forward(request, response);

しかし、私が実行したとき、apacheは次のように述べました:'HTTPステータス404-/Project2 /'(Project2はプロジェクトの名前です)。次に、Apache Tomcatログをチェックインすると、エラーが見つかりました。

'重大:パス[/ Project2]のコンテキストでサーブレット[ホーム]のServlet.service()が例外[org.apache.tiles.impl.CannotRenderException:パス'/layouts/layoutfront.jsp'を含むJSPException]をスローしました。 javax.servlet.ServletException:ファイル "/home/IndexContent.jsp" not found '

私はこれについて何も考えていません。タイルを操作する方法についていくつかのチュートリアルに従いましたが、それでも行き詰まります。

4

1 に答える 1