2016-01-13 129 views
1

我使用瓷磚庫處理我的應用程序的模板。如何將變量傳遞給瓷磚(瓷磚庫)

tile.xml:

<definition name="template1" template="/WEB-INF/template/default/template1.jsp"> 
    ... 
    <put-attribute name="menu" value="/WEB-INF/template/default/menu.jsp" /> 
    ... 
</definition> 

template1.jsp

<html> 
    <body> 
     ...   
     <tiles:insertAttribute name="menu" />     
     <tiles:insertAttribute name="menu" /> 
     ...     
    </body> 
</html> 

正如你可以看到我有插入到瓷磚 「菜單」。由於我必須在「menu.jsp」裏面打印不同的菜單,我怎樣才能發送2個不同的變量到2個不同的菜單「菜單」?

更清晰

<html> 
     <body> 
      ...   
      <tiles:insertAttribute name="menu" /> <--- here I should pass a variable called menu1     
      <tiles:insertAttribute name="menu" /> <--- here I should pass a variable called menu2      
      ...     
     </body> 
    </html> 

謝謝大家

+1

https://tiles.apache.org/framework/tutorial/advanced/nesting-extending.html – Pragnani

回答

0

你需要有兩個模板

<definition name="template1" template="/WEB-INF/template/default/template1.jsp"> 
    ... 
    <put-attribute name="menu" value="/WEB-INF/template/default/menu1.jsp" /> 
    ... 
</definition> 

<definition name="template2" template="/WEB-INF/template/default/template1.jsp"> 
    ... 
    <put-attribute name="menu" value="/WEB-INF/template/default/menu2.jsp" /> 
    ... 
</definition> 

<html> 
    <body> 
     ...   
     <tiles:insertAttribute name="menu" />     
     ...     
    </body> 
</html> 

更新

您可以使用此方法過於

<definition name="menu1" template="menu.jsp"> 
    ... 
    <put name="header.tile" value="headerMenu1.jsp" /> 
    ... 
</definition> 

<definition name="menu2" template="menu.jsp"> 
    ... 
    <put name="header.tile" value="headerMenu2.jsp" /> 
    ... 
</definition> 

menu.jsp

<tiles:insert attribute="header.tile" /> 
+0

這樣,我應該創建2 「引入了menu.jsp」 和我應該做雙重工作來維持他們。我想要一個單一的menu.jsp頁面並將不同的變量傳遞給它。 – MDP

+0

@MDP我更新了我的答案 –