あなたの質問からわかるように、コンテンツ属性に異なる名前を使用しています。user.layoutcontent
用とuser.pageuserContent
用です。
その属性に同じ名前を使用することを試みることができますcontent
かuserContent
?
お役に立てれば。
アップデート。
これはクイックハックソリューションです。tiles:get操作にtrueに設定されたignore属性を使用できます。userContentが定義されていない場合は、サイレントに実行されます。
しかし、これはタイルの定義に問題があると思います。
エラーメッセージは、定義されていないタイルを使用しようとしていることを示しています。.user.layout
の拡張子である場合の例をまとめました.basic.layout
。2つの違いは体の部分です。
<definition name=".basic.layout" path="/WEB-INF/jsps/basicLayout.jsp">
<put name="header" value="/WEB-INF/jsps/header.jsp"/>
<put name="content" value="/WEB-INF/jsps/basicLayout.jsp"/>
<put name="footer" value="/WEB-INF/jsps/footer.jsp"/>
</definition>
<!-- extending content part of basic layout -->
<definition name=".user.content" value="/WEB-INF/jsps/user/layout.jsp">
<put name="userContent" value="/WEB-INF/jsps/user/page.jsp"/>
</definition>
<!-- defining new layout -->
<definition name=".user.layout" extends=".basic.layout">
<put name="content" value=".user.content"/>
</defnition>
<definition name=".user.page" extends=".user.layout">
<put name="userContent" value="/WEB-INF/jsps/page.jsp"/>
</definition>
<definition name=".user.info" extends=".user.layout">
<put name="userContent" value="/WEB-INF/jsps/userInfo.jsp"/>
</definition>
<definition name=".other.page" extends=".basic.layout">
<put name="content" value="/WEB-INF/jsps/other.jsp"/>
</definition>