如何从CDI bean获取属性文件,我指的是用于国际化目的的属性文件here。
在@ManagedBean
中,一切都很简单@ManagedProperty(name="....")
但我无法在CDI bean中遇到相同的方法。
非常感谢。
答案 0 :(得分: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");
或者,你可以简单地将FacesContext
或Application
注入你的bean:
@Inject
Application theApplication
public void getBundle{
ResourceBundle bundle = theApplication.getResourceBundle(ctxt, aValue);
}
答案 1 :(得分:1)