无法覆盖扩展定义中的属性
Cannot override attribute in extended definition
从 Tiles 2 升级到 Tiles 3 后,覆盖属性似乎停止工作了。
我的 tiles.xml
有这样的东西,其中 create-form
从 baseLayout
延伸。我得到的“title”属性为空(但其他属性“menu”、“left”、“body”都被正确覆盖)。为什么这不再适用于“标题”? “标题”现在是保留字吗?
<definition name="baseLayout" template="/WEB-INF/layout/wireframe.jsp">
<put-attribute name="title" value="" />
<put-attribute name="menu" value="/WEB-INF/layout/menu.jsp" />
<put-attribute name="left" value="/WEB-INF/layout/left.jsp" />
<put-attribute name="body" value="/WEB-INF/layout/body.jsp" />
</definition>
<definition name="create-form" extends="baseLayout">
<put-attribute name="title">Create New Item</put-attribute>
<put-attribute name="menu" value="/WEB-INF/jsp/forms/create-menu.jsp" />
<put-attribute name="left" value="/WEB-INF/jsp/forms/create-leftNavBar.jsp" />
<put-attribute name="body" value="/WEB-INF/jsp/forms/create-body.jsp" />
</definition>
这解决了我的问题。我不知道为什么覆盖 Tiles 3 中的属性只能使用 value
属性(不使用 <put-attribute>
标记的主体)。
<put-attribute name="title" value="Create New Item" />
从 Tiles 2 升级到 Tiles 3 后,覆盖属性似乎停止工作了。
我的 tiles.xml
有这样的东西,其中 create-form
从 baseLayout
延伸。我得到的“title”属性为空(但其他属性“menu”、“left”、“body”都被正确覆盖)。为什么这不再适用于“标题”? “标题”现在是保留字吗?
<definition name="baseLayout" template="/WEB-INF/layout/wireframe.jsp">
<put-attribute name="title" value="" />
<put-attribute name="menu" value="/WEB-INF/layout/menu.jsp" />
<put-attribute name="left" value="/WEB-INF/layout/left.jsp" />
<put-attribute name="body" value="/WEB-INF/layout/body.jsp" />
</definition>
<definition name="create-form" extends="baseLayout">
<put-attribute name="title">Create New Item</put-attribute>
<put-attribute name="menu" value="/WEB-INF/jsp/forms/create-menu.jsp" />
<put-attribute name="left" value="/WEB-INF/jsp/forms/create-leftNavBar.jsp" />
<put-attribute name="body" value="/WEB-INF/jsp/forms/create-body.jsp" />
</definition>
这解决了我的问题。我不知道为什么覆盖 Tiles 3 中的属性只能使用 value
属性(不使用 <put-attribute>
标记的主体)。
<put-attribute name="title" value="Create New Item" />