2011-11-29 110 views
0

我使用的是Tiles 2.2,我想重用一个JSP来显示不同的消息。消息必须在Tiles配置文件中定义。Apache Tiles:扩展另一个抽象的抽象定义

下面的例子是我的方法:在基座抽象定义的所有其它定义延伸,而显示将是另一个抽象定义,作为用于显示消息的模板。 page1 and 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} 

但我不能让它工作,因为打开第1页第2页当我得到一个异常说消息属性为null。

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

在此先感谢

+0

自从我使用瓷砖以来已经有一段时间了。我想我记得不得不在字符串类型的属性上加入type =“string”。 –

回答

1

可能为时已晚,但我相信你需要添加cascade="true"put-attribute元素name="message"