Переопределение JSF2 ResourceBundleLoader? - PullRequest
0 голосов
/ 30 апреля 2010

Мне нужно разрешить сообщения ресурсов, содержащие выражения EL, при загрузке из ResourceBundle.В основном у меня есть ряд файлов свойств, содержащих текст.Часть текста будет выглядеть следующим образом:

welcomeText = Welcome # {userbean.name}

Единственный возможный способ увидеть эту работу в настоящее время - реализовать пользовательский taglib так, чтобы вместопоговорка:

<f:loadBundle var="messages" basename="application.messages"/>

Я должен был бы использовать

<mytaglib:loadBundle var="messages" basename="application.messages"/>
#{messages.welcomeText}

Учитывая пользователя с именем пользователя "User1", это должно вывести

Welcome User1

Моя реализация будет тогдаиспользуйте пользовательский класс ResourceBundle, который переопределяет handleGetObject, используйте ELResolver для разрешения переменных и т. д. Идеи?suggestings?Реализации, которые уже доступны?

Я ценю вашу помощь.

1 Ответ

1 голос
/ 30 апреля 2010

Скорее используйте <h:outputFormat> и <f:param> для отображения параметризованного текста. При поддержке MessageFormat API будут применяться те же правила, что описаны в javadoc API.

1012 * Е.Г. *

welcomeText=Welcome {0}

с

<h:outputFormat value="#{messages.welcomeText}">
    <f:param value="#{userbean.name}" />
</h:outputFormat>

Вот для чего:)

...