Apache Tiles: как получить доступ к определению имени - PullRequest
3 голосов
/ 28 июня 2011

Я хочу написать имя определения тайлов прямо в шаблоны.Но я понятия не имею, как получить доступ к имени определения.

Чтобы проиллюстрировать, что я хочу сделать, взгляните на этот обходной путь:

<tiles-definitions>

  <definition extends="default" name="index">
    <put-attribute name="body" value="/WEB-INF/views/index.jspx"/>
    <put-attribute name="pageId" value="index"/>        
  </definition>

   <definition extends="default" name="login">
      <put-attribute name="body" value="/WEB-INF/views/login.jspx"/>
      <put-attribute name="pageId" value="login"/>
   </definition>
</tiles-definitions>

Шаблон по умолчанию:

<html>
...
    <tiles:useAttribute id="tiles_pageId" name="pageId" classname="java.lang.String" />
    <body id="pageId_${tiles_pageId}">
...
    </body>
</html>

Это работает.Я могу указать атрибут (pageId) в определении, прочитать его в шаблоне и записать в выходной файл шаблона.

Но вы видите, что между именем определения и pageId есть корреляция 1: 1.Поэтому я не хочу писать имя дважды (определение name и pageId) в определении.Вместо этого я ищу способ пропустить объявление атрибута pageId и получить имя определения каким-либо другим образом в шаблоне (не записывая его дважды, снова и снова.)

1 Ответ

3 голосов
/ 01 апреля 2014

Я думаю, вы можете использовать Wildcard в вашем определении

<definition extends="default" name="*">
    <put-attribute name="body" value="/WEB-INF/views/{1}.jspx"/>
    <put-attribute name="pageId" value="{1}"/>
</definition>

Подробнее здесь: http://tiles.apache.org/framework/tutorial/advanced/wildcard.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...