代码之家  ›  专栏  ›  技术社区  ›  Anatoly

从CDI bean获取财产文件

  •  0
  • Anatoly  · 技术社区  · 10 年前

    如何从CDIbean中获取财产文件,我指的是用于国际化目的的财产文件,如前所述 here .

    在里面 @ManagedBean 一切都很简单 @ManagedProperty(name="....") 但我无法在CDI bean中找到相同的方法。

    非常感谢你。

    2 回复  |  直到 10 年前
        1
  •  1
  •   kolossus    10 年前

    据我所知,CDI不支持 @ManagedProperty 给(你能得到的) @ManagedProperty(name="#{msgs.title}") ). 如果您希望在CDI中实现这种级别的控制,则必须编写CDI Producer .

    考虑到资源包只是 ResourceBundle ,您可以通过以下方式轻松获得定义的捆绑包:

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

    或者,您可以简单地将 FacesContext Application 进入您的bean:

        @Inject
        Application theApplication
    
    
        public void getBundle{
            ResourceBundle bundle = theApplication.getResourceBundle(ctxt, aValue);
    
        }
    
        2
  •  1
  •   John Ament    10 年前

    如果您在CDI中寻找JSF的国际化支持,您可能需要查看DeltaSpike的 JSF 单元它基于中提供的核心i18n支持 core .