如何将变量传递给瓷砖(瓷砖库)

How to pass variable to tile (tiles library)

我使用 tiles 库处理应用程序的模板。

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"。由于我必须在 "menu.jsp" 中动态打印不同的菜单,我如何才能将 2 个不同的变量发送到 2 个不同的图块 "menu"?

更清楚

   <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>

谢谢大家

您需要有两个模板

<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" />