Jsf2 ResourceBundleleloader переопределить?
-
02-10-2019 - |
Вопрос
Мне нужно иметь сообщения о ресурсах, которые содержат разрешители EL, когда загружены из ресурса ResourceBundle. В основном у меня есть несколько файлов свойств, содержащих текст. Некоторые из текста будут выглядеть следующее:
welcometext = Добро пожаловать # {userbuan.name}
Единственный возможный способ, которым я могу видеть, что эта работа в настоящее время реализует пользовательский Taglib, чтобы вместо того, чтобы сказать:
<f:loadBundle var="messages" basename="application.messages"/>
Я должен был бы использовать
<mytaglib:loadBundle var="messages" basename="application.messages"/>
#{messages.welcomeText}
Учитывая пользователя с именем пользователя «user1», это должно выводить
Welcome User1
Моя реализация будет использовать пользовательский класс ResourceBundle, который переопределял бы HOLDGETOBJECT, используйте Elresolver для разрешения переменных и т. Д. Предложения? Реализации, которые уже доступны?
Я ценю вашу помощь.
Решение
Скорее использовать <h:outputFormat>
и <f:param>
отображать параметризованный текст. Он поддерживается MessageFormat
API., будут применяться одинаковые правила, как описано в Javadoc API.
Например
welcomeText=Welcome {0}
с
<h:outputFormat value="#{messages.welcomeText}">
<f:param value="#{userbean.name}" />
</h:outputFormat>
Там это для :)