我的网络应用程序需要动态创建的ResourceBundle
。是否有可能以某种方式将其推入FacesContext
(或其他任何地方),以便以后可以从视图中获得静态RB?例如:
<h:outputText value="#{myDynaBundle['key.inside.dynamic.rb']}" />
静态RB我的意思是在app-config.xml中定义的包,例如:
<resource-bundle>
<base-name>messages</base-name>
<var>msg</var>
</resource-bundle>
答案 0 :(得分:2)
创建一个extends ResourceBundle
的类,并使其成为托管bean。
E.g。
public class MyDynaBundle extends ResourceBundle {
@Override
protected Object handleGetObject(String key) {
// Implement bundle value retrieval by key.
}
@Override
public Enumeration<String> getKeys() {
// If necessary, implement retrieval of all valid keys.
}
}
注册为
<managed-bean>
<managed-bean-name>myDynaBundle</managed-bean-name>
<managed-bean-class>com.example.MyDynaBundle</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>