2013-03-01 4 views
1

У меня есть 4 разных типа членов на моем сайте, где можно сказать memberA, memberB, memberC и memberD. Каждый должен иметь свой собственный заголовок headerA.jsp, headerB.jsp, headerC.jsp, headerD.jsp.Как использовать гибкий веб-сайт с использованием плитки?

Как показано ниже, для каждого типа членов определено определение, а их конкретный заголовок и тело определены. Каждый из них имеет свой собственный заголовок, но некоторые из них, например, memberA, memberB и memberC share gbody.jsp как их атрибут тела.

 <definition name="MemberA" extends="baseLayout"> 
      <put-attribute name="header" value="/headerA.jsp"/> 
      <put-attribute name="body" value="/gbody.jsp"/> 
     </definition> 

     <definition name="MemberB" extends="baseLayout"> 
      <put-attribute name="header" value="/headerB.jsp"/> 
      <put-attribute name="body" value="/bodyB.jsp"/> 
     </definition> 

     <definition name="MemberC" extends="baseLayout"> 
      <put-attribute name="header" value="/headerC.jsp"/> 
      <put-attribute name="body" value="/gbody.jsp"/> 
     </definition> 

     <definition name="MemberD" extends="baseLayout"> 
      <put-attribute name="header" value="/headerD.jsp"/> 
      <put-attribute name="body" value="/gbody.jsp"/> 
     </definition> 

У меня есть две проблемы, когда член подписывается в

  1. Как показать им их специфический заголовок?
  2. Как определить свой собственный атрибут тела?
+1

Обновление до плитки-3, то вы можете использовать выражения внутри поместить атрибуты ... Также поддерживаются выражения OGNL, вы можете просто приклеить компонент «A», «B», «C», «D» к концу строки динамически, вытащив его из сеанса, тогда вы только нужна одна плитка. Традиционно вы должны определить новую плиту для каждой комбинации, но вы также можете использовать подстановочные знаки и регулярные выражения для выполнения некоторой части работы. – Quaternion

ответ

1

Вы можете определить 4 заголовки в качестве такого

<definition name="Members" extends="baseLayout"> 
    <put-attribute name="headerA" value="/headerA.jsp"/> 
    <put-attribute name="headerB" value="/headerB.jsp"/> 
    <put-attribute name="headerC" value="/headerC.jsp"/> 
    <put-attribute name="headerD" value="/headerD.jsp"/> 
    <put-attribute name="body" value="/gbody.jsp"/> 
</definition> 

, а затем в базовом макете есть некоторый код, который говорит

<c:if test="${memberA}"> 
    <tiles:insert attribute="headerA"/> 
</c:if> 
etc...