2

我正在使用 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}" [...] >

有什么提示吗?

4

1 回答 1

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>
于 2012-08-15T09:22:16.987 回答