【问题标题】:What is the correct way to override Application.getResourceBundle() in JSF?在 JSF 中覆盖 Application.getResourceBundle() 的正确方法是什么?
【发布时间】:2019-05-04 17:13:59
【问题描述】:

我想为 JSF 使用的 ALL 资源包使用特定的 ResourceBundle.Control

因此,我创建了一个覆盖getResourceBundle() 方法的ApplicationWrapper (+ ApplicationFactory)。

我注意到的奇怪行为是每次评估包含命名对象的表达式时都会调用getResourceBundle()

例如,如果我的模板包含像"#{someBean.active and securityBean.secure}" 这样的表达式,那么getResourceBundle() 将以“someBean”作为基名调用一次,并以“securityBean”调用一次。

这似乎不是很有效,我可能会遗漏一些东西(我真的不知道为什么 JSF 会为每个命名对象这样做)。

我正在使用与 wildfly 14 捆绑的 mojarra。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    getResourceBundle() 并不意味着加载任何资源包,它等同于<application><resource-bundle>...,它采用逻辑名称,而不是包的基本名称。所以这个问题没有意义。

    【讨论】:

    • 我可能读错了问题,但我看不到 OP 说明他/她正在方法中加载资源包
    • 我认为这暗示着我想使用 ResourceBundle.Control。有没有其他方法可以在 JSF 中使用而不自己调用 getBundle()?
    • 对不起,我错过了你是OP,对不起。如果您实际上每次都在其中加载东西,那么您的答案是正确的......
    猜你喜欢
    • 2013-03-08
    • 2015-05-06
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多