【问题标题】:Get properties file from CDI bean从 CDI bean 获取属性文件
【发布时间】:2014-08-03 05:45:08
【问题描述】:

如何从 CDI bean 获取属性文件,我的意思是用于国际化目的的属性文件,如 here 所述。

@ManagedBean 中,一切都很简单@ManagedProperty(name="...."),但我无法在 CDI bean 中实现相同的目标。

非常感谢。

【问题讨论】:

    标签: jsf jakarta-ee cdi


    【解决方案1】:

    据我所知,CDI 不支持@ManagedProperty 提供的那种字段级访问(您可以拥有@ManagedProperty(name="#{msgs.title}"))。如果您想在 CDI 中获得这种级别的控制,则必须编写 CDI Producer

    考虑到资源包只是ResourceBundle 的一个类,您可以通过以下方式轻松获取定义的包:

        FacesContext ctxt = FacesContext.getCurrentInstance();
        ResourceBundle bundle = ctxt.getApplication().getResourceBundle(ctxt, aValue);
        bundle.get("title");
    

    或者,您可以简单地将 FacesContextApplication 注入到您的 bean 中:

        @Inject
        Application theApplication
    
    
        public void getBundle{
            ResourceBundle bundle = theApplication.getResourceBundle(ctxt, aValue);
    
        }
    

    【讨论】:

      【解决方案2】:

      如果您正在 CDI 中为 JSF 目的寻找国际化支​​持,您可能需要查看 DeltaSpike 的 JSF 模块。它建立在core 中提供的核心 i18n 支持之上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        • 2020-03-16
        • 1970-01-01
        • 1970-01-01
        • 2013-09-05
        • 2011-12-10
        相关资源
        最近更新 更多