如何在JSF 1.2中为参数化消息添加转换器?

时间:2014-01-27 16:24:31

标签: converter jsf-1.2 parameterized param outputformat

我正在寻找一种方法来在JSF 1.2 xhtml页面中的参数化文本中转换我的参数。

假设我在messages.properties中有此参数化消息(请忽略此示例的愚蠢):

EXAMPLE_TEXT=Right now {0} Euro is {1} US-Dollar.

我希望输出看起来像这样:

Right now 1 Euro is 1.3658 US-Dollar.

然后我的xhtml代码如下所示:

<h:outputFormat value="#{messages.EXAMPLE_TEXT}">
    <f:param value="#{backingBean.euroValue}" />
    <f:param value="#{backingBean.dollarValue}" />
</h:outputFormat>

我已经实现了一个将数值转换为特定格式的转换器(假设其ID为bigDecimalConverter)。

我现在的问题是:(如何)将转换器注册到输出的参数值?

我想象这样的事情(遗憾的是,这似乎是不可能的):

<h:outputFormat value="#{messages.EXAMPLE_TEXT}">
    <f:param value="#{backingBean.euroValue}" converter="bigDecimalConverter" />
    <f:param value="#{backingBean.dollarValue}" converter="bigDecimalConverter" />
</h:outputFormat>

询问谷歌我发现this thread,但这不足以解决我的具体问题。

非常感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用outputText获得完全相同的输出:

1)将输出更改为<h:outputText value="#{messages.TEXT1} #{backingBean.euroValue} #{messages.TEXT2} #{backingBean.dollarValue} #{messages.TEXT3}" />

2)在backing bean中创建返回完整String的方法并在输出文本中调用它。

(这个答案是从之前的评论转变而来)