0

我有一个 Wicket (6.19) 捆绑包,包括:

  • 主页.java
  • 主页.html
  • 主页.properties.xml

.java文件中我有这个代码:

public class HomePage extends BasePage {
    public HomePage() {
        add(new Label("message", getString("greetingMessage")));
    }
}

.properties文件中我有这个:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM
    "http://www.oracle.com/webfolder/technetwork/jsc/dtd/properties.dtd">
<properties>
    <entry key="greetingMessage">Hello</entry>
</properties>

问题是调用该getString方法会返回异常:

java.util.MissingResourceException:找不到属性:组件的“greetingMessage”:[class=com.mycompany.HomePage]。语言环境:null,风格:null

我究竟做错了什么 ?

4

3 回答 3

1

检查您的控制台:

WARN - PropertiesFactory - Unable to find resource file:/.../HomePage.properties.xml
java.util.InvalidPropertiesFormatException: org.xml.sax.SAXException: Invalid system identifier: http://www.oracle.com/webfolder/technetwork/jsc/dtd/properties.dtd

所以替换 doctype 声明:

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
于 2015-02-18T08:46:26.903 回答
0

更好用add(new Label("message", new ResourceModel("greetingMessage")));

还要确保构建工具将 .properties.xml 文件复制到 HomePage.class,以便稍后在运行时可用。

于 2015-02-18T08:48:02.767 回答
0

尝试

new Label("message", new StringResourceModel("greetingMessage", this, null).getString());
于 2015-02-18T11:36:53.803 回答