Я не очень доволен возможностями встроенного пакета ресурсов 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. * Вместо того, чтобы извлекать содержимое значения.
Могу ли я забыть о своем подходе? Кто-нибудь знает, как делать подобные вещи?