Jsp 在Apache Tiles中扩展嵌套模板
从Jsp 在Apache Tiles中扩展嵌套模板,jsp,tomcat,tiles,Jsp,Tomcat,Tiles,从 我需要扩展myapp.homepage,在扩展定义中,我需要向myapp.homepage.body添加另一个属性。希望它有意义。 <definition name="myapp.homepage.extended" extends="myapp.homepage"> <put-attribute name="yournewattribute" value="My New Attribute" /> </definition> !-- Not
我需要扩展myapp.homepage
,在扩展定义中,我需要向myapp.homepage.body
添加另一个属性。希望它有意义。
<definition name="myapp.homepage.extended" extends="myapp.homepage">
<put-attribute name="yournewattribute" value="My New Attribute" />
</definition>
!-- Note: you can also use this pattern to override an attribute. All the other attributes will remain:
<definition name="myapp.homepage.override" extends="myapp.homepage">
<put-attribute name="tiele="My New Title" />
</definition>
!-- Or you can combine overrrides with additional attributes:
<definition name="myapp.homepage.custom" extends="myapp.homepage">
<put-attribute name="tiele="My New Title" />
<put-attribute name="yournewattribute" value="My New Attribute" />
</definition>
!-- 注意:也可以使用此模式覆盖属性。所有其他属性将保留:
我终于解决了这个问题。答案如下:
<definition name="myapp.homepage_extended" extends="myapp.homepage" >
<put-attribute name="new-attr-in-body" value="/tiles/new-attr-in-body.jsp" cascade="true" />
</definition>
诀窍是添加
cascade=“true”
以便属性能够级联到嵌套定义。@user2939297请解释您认为答案有效的原因。只有代码的答案通常不会说太多。
<definition name="myapp.homepage_extended" extends="myapp.homepage" >
<put-attribute name="new-attr-in-body" value="/tiles/new-attr-in-body.jsp" cascade="true" />
</definition>