次の tiles-def.xml があります。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="default" template="/WEB-INF/jsp/layout.jsp">
<put-attribute name="title" value="my webapp" />
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
<put-attribute name="body" value="/WEB-INF/jsp/hello.jsp" />
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
</definition>
<definition name="contact" extends="default">
<put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" />
</definition>
<definition name="hello" extends="default">
<put-attribute name="body" value="/WEB-INF/jsp/hello.jsp" />
</definition>
</tiles-definitions>
ご覧のとおり、私のすべてのページで、本体だけが変更されています。これを自動化する方法はありますか?(したがって、要求されたページの名前を持つ JSP が自動的に含まれるか、存在しない場合はエラー ページが含まれますか?)
ありがとうございました!
編集:私がやりたいことの詳細:
現在の状況: webapp の新しいページごとに、tiles-def.xml に新しいページを追加する必要があります。そして毎回、それが行う唯一のことは、私のコンテンツページで本文を設定することです.
私がやりたいこと: 表示するページを自動的に選択するデフォルトの定義を 1 つだけ用意します。次のようなものです。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="default" template="/WEB-INF/jsp/layout.jsp">
<put-attribute name="title" value="my webapp" />
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
if(myPageName exists){
<put-attribute name="body" value="/WEB-INF/jsp/" + myPageName + ".jsp" />
else{
<put-attribute name="body" value="/WEB-INF/jsp/error404.jsp" />
}
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
</definition>
</tiles-definitions>
myPageName は要求されたページの名前になります (URL が「http://www.mysite.com/contact.html」の場合、myPageName は「contact」になります。「http://www.mysite の場合」 .com/info.html" の場合、myPageName は "info" になります)。
これどうやってするの?