Переменный параметр поиска для resourceBundle?

В настоящее время я использую переменную resourceBundle для получения текстовых значений в моем коде JSF, например. нравится:

<h:outputText value="#{resourceBundle.welcomeMessage}" />

Есть ли способ поместить ключ сообщения в переменную и передать его в качестве динамического параметра пакету ресурсов? Я надеялся, что смогу сделать что-то вроде этого:

<c:set var="name" value="#{'welcomeMessage'}" />
<h:outputText value="#{resourceBundle.get(name)}" />

person Rune Aamodt    schedule 24.02.2011    source источник


Ответы (3)


Пакет ресурсов принимает динамический параметр. Вот фрагмент из моего проекта:

    <f:loadBundle basename="#{siteName}" var="bundle"/>
        ....
               <h:dataTable value="#{summary.restrictionList}" var="restrictionList" cellspacing="0" cellpadding="0"> 
               ....

                            <h:outputFormat value="#{bundle['summary.label.blockcodemsg']}">
                                <f:param value="#{restrictionList['lastFourDigits']}"/>
                                <f:param value="#{bundle[restrictionList['optionDesc']]}"/>
                                <f:param value="#{bundle[restrictionList['optionResolutionDesc']]}"/>
                            </h:outputFormat>
     ....
person Ritesh    schedule 24.02.2011

Просто создайте выделенный ManagedBean с методом resolveKey(String key), из которого вызовите поиск и просмотр resourceBundle, и используйте этот bean.

person jmj    schedule 24.02.2011

Используйте h:outputFormat, см. пример : http://www.javabeat.net/tips/47-how-to-use-resource-bundle-in-jsf.html

person Adam    schedule 24.02.2011