2016-01-13 164 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我更新了我的答案 –