Apache Tiles:抽象定义扩展另一个抽象定义

时间:2011-11-29 21:27:18

标签: jsp tiles2 apache-tiles

我正在使用Tiles 2.2,我想重用一个JSP来显示不同的消息。必须在Tiles配置文件中定义消息。

以下示例是我的方法: base 是所有其他定义扩展的基本抽象定义,而 display 将是另一个抽象定义,用作显示模板消息。 page1 page2 是两个最终页面示例,每个示例都显示不同的消息。

<definition name="base" template="layout.jspx"/>

<definition name="display" extends="base">
        <put-attribute name="body" value="display.jspx"/>
</definition>

<definition name="page1" extends="display">
        <put-attribute name="message" value="This is one message!"/>
</definition>

<definition name="page2" extends="display">
        <put-attribute name="message" value="This is another message!"/>
</definition>

display.jspx里面会有这样的东西:

<tiles:useAttribute name="message"/>
Message: ${message}

但是我无法使它工作,因为在打开 page1 page2 时,我得到一个异常,说消息属性为空。

有没有一种简单的方法来设置这样的东西,而无需修改基本模板和定义

提前致谢

1 个答案:

答案 0 :(得分:1)

可能为时已晚,但我相信您需要为cascade="true"的{​​{1}}元素添加put-attribute