从另一个房产参考一个房产?

时间:2013-05-22 05:37:19

标签: wicket wicket-1.6

在Wicket中,是否可以让一个属性的值引用另一个属性?例如,如果我有<entry key="site.name">My Site</entry>之类的属性,是否有其他属性可以在其值中使用site.name的值?

我尝试使用像<entry key="page.title">About ${site.name}</entry>这样的东西,但是Wicket抛出异常,因为它试图将site.name解析为模型的属性......这是有道理的。但是有另一种语法 允许一个属性引用另一个属性的值吗?

顺便说一下,我正在运行Wicket 6.6。

3 个答案:

答案 0 :(得分:2)

要回答我自己的问题,代码中的快速峰值显示Wicket使用java.util.Properties加载属性,Apache Commons Configuration只是为键值对解析流。根据他们使用ANT等工具的经验,它不会像开发人员所期望的那样进行任何属性扩展/替换。

Properties的替代方法,如{{3}},可执行扩展但Properties则不会。因此,Wicket也不会 - 它只是在写入时加载属性。 Wicket唯一的替代是在呈现页面时用于模型属性,而不是用于单词的“属性文件”意义上的属性。

答案 1 :(得分:0)

看一看 在Wicket StringResourceModel

doc中的示例: label.greetings=Welcome, ${name}!new Label("greetings", new StringResourceModel("label.greetings", this, new Model(user)));

答案 2 :(得分:0)

您可以编写自己的ResourceModel来替换键:http://pastebin.com/38WB2XDF

ReplacingResourceModel将可用于:

<dependency>
    <groupId>org.wicketstuff</groupId>
    <artifactId>wicketstuff-minis</artifactId>
    <version>7.0.0-M6</version>
</dependency>

<dependency>
    <groupId>org.wicketstuff</groupId>
    <artifactId>wicketstuff-minis</artifactId>
    <version>6.20.0</version>
</dependency>