2014-01-27 22 views
0

我正在寻找一种方法来在JSF 1.2 xhtml页面中的参数化文本中转换我的参数。如何将转换器添加到JSF 1.2中的参数化消息中?

比方说,我有这样的参数消息我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,但它没有足够的答案,我的特定问题。

非常感谢您的帮助!

+0

怎么样设计的其他方式''?或者第二种方法:在支持返回完整String的bean中创建方法并在输出文本中调用它。 –

+0

非常感谢您的帮助!这些是避开这个限制的好方法,它们似乎工作得很好。我想我会和他们中的一个一起去。我只是想,在这里使用转换器是最干净的方式。 – david

回答

0

您可以用精确的outputText相同的输出:

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

2)创建支持bean这回满弦,并调用它在输出文本的方法。

(这个答案是从以前的评论转化)

相关问题