2011-07-20 12 views
0

私はApache Tiles 2でSpring MVCフレームワークを使用しています。複数のコントローラがすべて同じビュー(別のロジック、基本的なプレゼンテーション)を使用できるようにしたいと思います。私はそれを簡単に行うことができます。私が今したいのは、それぞれが同じJSPファイルを使用しているが、それぞれ異なるテンプレート変数(ページヘッダー、短い説明など)を渡して、各コントローラの異なるTiles定義を持つことです。これは私のタイルテンプレート定義ファイルです:タイル2テンプレートのアクセス変数

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> 

<h1> 
    Hello world, it's <tiles:getAsString name="title" />! 
</h1> 

私はTomcatのにこれをロードし、ページを起動すると、私が手に:私は、この/WEB-INF/views/index.jspを持つようにしようと

<tiles-definitions> 

    <!-- Default Main Template --> 
    <definition name=".mainTemplate" template="/WEB-INF/templates/main.jsp"> 
     <put-attribute name="shortTitle" value="Company ABC" type="string" /> 
     <put-attribute name="body" value="/WEB-INF/templates/blank.jsp" /> 
    </definition> 

    <!-- Overriding Templates --> 
    <definition name="index" extends=".mainTemplate"> 
     <put-attribute name="title" value="Company Alpha Bravo Charlie" type="string" /> 
     <put-attribute name="body" value="/WEB-INF/views/index.jsp" /> 
    </definition> 

    <definition name="index2" extends=".mainTemplate"> 
     <put-attribute name="title" value="Company Other Page" type="string" /> 
     <put-attribute name="body" value="/WEB-INF/views/index.jsp" /> 
    </definition> 

</tiles-definitions> 

例外の長いスタックトレース。山の頂上にはorg.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/templates/main.jsp'.} with root cause org.apache.tiles.template.NoSuchAttributeException: Attribute 'title' not foundと書かれています。誰が何が起こっているのか知っていますか?

答えて

0

私は、この/WEB-INF/views/index.jspを持つようにしてみてください。

あなたはこれを試すにはどうすればよいですか?お使いのコントローラで複数のJSPタイルの1つは、ページをレンダリングするために使用する、タイルビューの名前をないように指定します:

@RequestMapping("index2") 
public String index2() { 
    // ... 
    return "index2"; 
} 
+0

この時点で私の開発では、何のコントローラが存在しない、私が持っています''を参照してください。これは私が望むテンプレートに私を連れて行っているようだが、私は確かにどのように考えていない。 – Nik

+0

私はいくつかの類似の例をいくつか持っているので、コントローラーで試してみてください。問題なく動作します。 – sinuhepop

+0

私はそれをするのに苦労しているので、あなたが私に与えることができるアドバイスは非常に高く評価されます。 – Nik

関連する問題