【问题标题】:In wicket is there a way to read localized properties directly?在检票口有没有办法直接读取本地化的属性?
【发布时间】:2015-12-16 23:09:21
【问题描述】:

除其他外,我的所有本地化 .properties 文件中都有这两个具有不同值的属性:

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

当用户选择一个受保护的国家/地区时,调用 void onUpdate(AjaxRequestTarget target) 并且该方法中的以下行会起作用:

...
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。

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

【问题讨论】:

    标签: java properties internationalization wicket-6


    【解决方案1】:

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

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

    您可能想改用Boolean.parseBoolean(String)

    【讨论】:

    • 现在我觉得自己很笨(呃)
    猜你喜欢
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2020-05-01
    • 2021-12-24
    • 2013-06-25
    • 1970-01-01
    • 2022-10-07
    相关资源
    最近更新 更多