Параметризация 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>