在wicket中有没有办法直接读取本地化属性?

时间:2015-12-16 23:09:22

标签: java properties internationalization wicket-6

在我的所有本地化.properties文件中,我有两个具有不同值的属性:

...
StateShow=true
StateLabel=State
...

当用户选择一个国家/地区受保护的void onUpdate(AjaxRequestTarget目标)被调用时,该方法中的以下行有效:

...
getSession().setLocale(locale);
...
stateLabel.setDefaultModel(new StringResourceModel("StateLabel",target.getPage(),null));
...

也就是说,在美国它说国家,在加拿大它说省,在日本它说州,等等。但是以下行不起作用:

...
showState       = Boolean.getBoolean(new StringResourceModel("StateShow",       target.getPage(),null).getString());
...

也就是说,当正确的.properties文件说StateShow = true时,showState始终为false。

是否有准确访问未用作模型的本地化属性?

1 个答案:

答案 0 :(得分:1)

您的问题可能与Wicket无关,而是与Boolean.getBoolean(String)的使用有关,它试图找到具有给定名称的系统属性(检查javadoc)。

所以我假设您的StringResourceModel正确返回值“true”。然后Boolean.getBoolean(String)尝试查找名为“true”的系统属性,该属性可能不存在,因此返回false。

您可能希望改为使用Boolean.parseBoolean(String)