2

Tiles のドキュメントにあるように、 https: //tiles.apache.org/framework/tutorial/advanced/wildcard.html ワイルドカードを定義して、任意の名前を受け入れることができます。ただし、名前に「/」が含まれている場合は、「c4/login」などです。タイルは例外をスローします

org.apache.tiles.definition.NoSuchDefinitionException: c4/login
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:625)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321)

私の定義は以下です。

<definition name="*" template="/WEB-INF/tiles/basicLayout.jsp">
  <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
  <put-attribute name="content" value="/WEB-INF/pages/{1}.jsp" />
  <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
</definition>

以下の例のように定義を変更すると、スラッシュを含む名前が受け入れられます。

<definition name="c4/login" template="/WEB-INF/tiles/basicLayout.jsp">
  <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
  <put-attribute name="content" value="/WEB-INF/pages/c4/login.jsp" />
  <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
</definition>

お知らせ下さい。どうもありがとう。

4

2 に答える 2

2

より一般的な回避策を見つけたと思います。**ワイルドカードとして使用します。

<definition name="**" template="/WEB-INF/tiles/basicLayout.jsp">
  <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
  <put-attribute name="content" value="/WEB-INF/pages/{1}.jsp" />
  <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
</definition>
于 2012-02-20T10:00:29.053 に答える
1

回避策を見つけました。以下の改訂された定義を使用してください

<definition name="*/*" template="/WEB-INF/tiles/basicLayout.jsp">
  <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
  <put-attribute name="content" value="/WEB-INF/pages/{1}/{2}.jsp" />
  <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
</definition>

これがお役に立てば幸いです。

于 2011-06-29T14:10:04.293 に答える