1

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

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

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

4

3 回答 3

2

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

有一些替代方案Properties,例如Apache Commons Configuration,它们执行扩展但Properties不执行。因此,Wicket 也不 - 它只是在写入属性时加载它们。Wicket 所做的唯一替换是在呈现页面时用于模型属性,而不是用于“属性文件”一词意义上的属性。

于 2013-05-25T20:48:09.860 回答
0

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

ReplaceingResourceModel 将在以下位置可用/可用:

<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>
于 2015-02-21T17:10:50.353 回答
0

看看 Wicket 中的StringResourceModel

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

于 2013-05-24T10:06:49.473 回答