Reputation: 2961
My webapp requires a ResourceBundle
that is dynamically created. Is it possible to somehow push it inside FacesContext
(or anywhere else, for that matter) so that it is later available from a view a la static RB? For example:
<h:outputText value="#{myDynaBundle['key.inside.dynamic.rb']}" />
By static RB I mean a bundle that is defined inside app-config.xml, such as:
<resource-bundle>
<base-name>messages</base-name>
<var>msg</var>
</resource-bundle>
Upvotes: 1
Views: 255
Reputation: 1108557
Create a class which extends ResourceBundle
and make it a managed 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.
}
}
which is registered as
<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>
Upvotes: 2