Как я могу сократить вызовы пакета ресурсов? Композитный компонент? - PullRequest
2 голосов
/ 25 февраля 2012

Я не очень доволен возможностями встроенного пакета ресурсов JSF, например:

<h:outputFormat value="#{messages['form.label.create']}">

Поэтому я попытался написать свой собственный составной компонент, чтобы сократить эти вещи:

<composite:interface>

    <composite:attribute name="value" />
    <composite:attribute name="p1" />

</composite:interface>


<composite:implementation>
    <h:outputFormat value="#{messages['cc.attrs.value']}"> //text.properties
        <f:param value="#{cc.attrs.p1}" />
    </h:outputFormat>
</composite:implementation>

Использование:

<cc:messages value="label.name" p1="#{test}" />

Но выражение messages['cc.attrs.value'] ищет в пакете ресурсов файл cc.attrs. * Вместо того, чтобы извлекать содержимое значения.

Могу ли я забыть о своем подходе? Кто-нибудь знает, как делать подобные вещи?

1 Ответ

2 голосов
/ 25 февраля 2012

Попробуйте вместо этого написать messages[cc.attrs.value].

JSF интерпретирует 'cc.attrs.value' как строковое значение, а не имя переменной.

...