Параметризация h:commandButton

Я использую JSF, и я хотел бы параметризовать текст кнопки команды аналогично h:outputFormat,

Что-то вроде

<h:commandButton value="Text {0} some more text" [...] >

На данный момент я

<h:commandButton value="Text #{bean.value()} some more text" [...] >

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

<h:commandButton value="#{msg.textbefore} #{bean.value()} #{msg.textafter}" [...] >

Любой намек?

1 ответ

Решение

Мы используем JSF 1.2, и мы определили метод в нашем собственном taglib,

<h:commandButton value="#{g:formatMessage('Text {0} some more text', bean.value)}" >

где g: пространство имен мы определили.

xmlns:g="http://www.client.com/product"

Taglib зарегистрирован в web.xml

<context-param>
    <param-name>facelets.LIBRARIES</param-name>
    <param-value>
        PATH_TO_CUSTOM_TAGLIB;/WEB-INF/tomahawk.taglib.xml;
    </param-value>
</context-param>

и метод определяется в taglib как:

<function>
    <function-name>formatMessage</function-name>
    <function-class>com.XXX.XXX.XXX.JavaClass</function-class>
    <function-signature>java.lang.String formatMessage(java.lang.String, java.lang.String)</function-signature>
</function>
Другие вопросы по тегам