gpt4 book ai didi

apache - 在 Tiles 中嵌套模板,为什么包含的模板中未定义属性?

转载 作者:行者123 更新时间:2023-12-04 06:42:51 27 4
gpt4 key购买 nike

我在我的 web 应用程序中使用了 Tiles 2,我在我的tiles.xml 文件中的基本设置是这样的:

<tiles-definitions>
<definition name="mainLayout" template="/jsp/layout.jsp">
<put-attribute name="header" value=""/>
<put-attribute name="menu" value="/jsp/defaultMenu.jsp" />
<put-attribute name="content" value="" />
<put-attribute name="footer" value="/jsp/footer.jsp" />
</definition>

<definition name="HomePage" extends="mainLayout">
<put-attribute name="content" type="template" value="/jsp/home.jsp"/>
<put-attribute name="homeClass" value="active" />
</definition>

... rest omitted for brevity.

在定义布局的 layout.jsp 中,我将菜单包含在适当的位置。
<tiles:insertAttribute name="menu" />

所以,然后在我的菜单模板中,我想使用在tiles.xml 中定义的homeClass 属性。
<tiles:insertAttribute name='homeClass'/>

但我收到有关未定义 homeClass 属性的错误。如果我在layout.jsp 中执行insertAttribute,则该值已正确定义,但我需要在我的布局中包含的菜单JSP 中定义它。

所以,我的问题是:我怎样才能拥有 homeClass属性不仅正确传递到我的布局模板,而且传递到布局模板中包含的菜单模板?

最佳答案

我相信您可以使用嵌套模板定义:

<definition name="mainLayout" template="/jsp/layout.jsp">
<put-attribute name="header" value=""/>

<put-attribute name="menu">
<definition template="/jsp/defaultMenu.jsp">
<put-attribute name="homeClass" value="active"/>
</definition>
</put-attribute>

<put-attribute name="content" value="" />
<put-attribute name="footer" value="/jsp/footer.jsp" />
</definition>

关于apache - 在 Tiles 中嵌套模板,为什么包含的模板中未定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4034131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com