2012-03-14 3 views
1

My webapp требует динамического создания ResourceBundle. Можно ли каким-то образом нажать его внутри FacesContext (или где-нибудь еще, если на то пошло), чтобы он был позже доступен из вида a la static RB? Например:Использование динамически сгенерированного пакета в JSF 1.2

<h:outputText value="#{myDynaBundle['key.inside.dynamic.rb']}" /> 

статическим RB Я имею в виду связку, которая определена внутри приложения-config.xml, такие как:

<resource-bundle> 
    <base-name>messages</base-name> 
    <var>msg</var> 
</resource-bundle> 

ответ

2

Создать класс, который extends ResourceBundle и сделать его управляемым компонентом.

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> 
+0

Спасибо (также означало, в общем, как вы спасли мою а ** пару раз). – geca

+0

Добро пожаловать. – BalusC

Смежные вопросы