Как использовать Parameterized MessageFormat с не -Value атрибутами компонентов JSF

У меня есть вариант использования, в котором я должен использовать пакет ресурсов для отображения различных текстов в пользовательском интерфейсе. Некоторые из этих записей набора ресурсов принимают параметры (, например. {0} ), для них я использую h :outputFormat, но иногда этого недостаточно.

например.

someMessage=Display this message with param {0}

в комплекте ресурсов.

Чтобы отобразить его на xhtml, я обычно делаю:

<h:outputFormat value="#{msg['someMessage']}"><f:param value="#{someBean.value}"/></h:outputFormat>

Это хорошо работает, когда это простой случай,но для более сложных вариантов использования этого недостаточно. Например, если я хочу, чтобы атрибут title ссылки commandLink использовал указанную выше запись пакета ресурсов:

    <h:commandLink action="logout" title="#{msg['someMessage']}">
        <f:param value="#{someBean.value}" />
        <h:graphicImage library="images" name="image.png" />
    </h:commandLink>

что не работает. Я также пробовал:

    <h:commandLink action="logout">
        <f:attribute name="title">
            <h:outputFormat value="#{msg['someMessage']}"><f:param value="#{someBean.value}"/></h:outputFormat>
        </f:attribute>
        <h:graphicImage library="images" name="image.png" />
    </h:commandLink>

что также не работает, так как атрибут f :не допускает детей.

Даже если есть способ обойти это (, например. используя компонент наведения из простых лиц ), есть и другие поля, для которых может потребоваться параметризованное сообщение.

Кто-нибудь знает способ использования MessageFormat, который принимает аргумент в поле значения, отличном от -компонента JSF?

10
задан Zak 17 August 2012 в 17:28
поделиться