geca
geca

Reputation: 2961

Using dynamically generated bundle in JSF 1.2

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

Answers (1)

BalusC
BalusC

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

Related Questions