【问题标题】:How to add a converter to parameterized messages in JSF 1.2?如何在 JSF 1.2 中向参数化消息添加转换器?
【发布时间】:2014-01-27 16:24:30
【问题描述】:

我正在寻找一种方法来将我的参数转换为 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,但这不足以回答我的具体问题。

非常感谢您的任何帮助!

【问题讨论】:

  • 用其他方式设计你的输出怎么样&lt;h:outputText value="#{messages.TEXT1} #{backingBean.euroValue} #{messages.TEXT2} #{backingBean.dollarValue} #{messages.TEXT3}" \&gt;?或第二种方式:在支持 bean 中创建返回完整字符串并在输出文本中调用它的方法。
  • 非常感谢您的帮助!这些是规避这种约束的好方法,而且它们似乎工作得很好。我想我会和他们中的一个一起去。我只是想,在这里使用转换器是最干净的方法。

标签: converter jsf-1.2 parameterized param outputformat


【解决方案1】:

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

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

2) 在支持 bean 中创建返回完整字符串的方法并在输出文本中调用它。

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

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2011-03-06
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多