【问题标题】:ConvertNumber do JSF negative valuesConvertNumber 做 JSF 负值
【发布时间】:2017-08-23 17:20:26
【问题描述】:

当我使用 JSF 的本地转换器 <f:convertNumber type="currency"/> 时,负货币值会在货币符号前保留字符“-”。

例如:-$ 56.134.726,99

.xhtml

<p:column>
    <h:outputText value="#{entity.monetaryValue}">
        <f:convertNumber type="currency"/>
    </h:outputText>
</p:column>

这个问题有什么不同于创建我自己的转换器的解决方案吗?

【问题讨论】:

  • 究竟是什么问题?你想完全跳过减号吗?或者也许你想在另一个地方打印它,例如在$之后,而不是之前?
  • 我想要$ -56.134.726,99 而不是-$ 56.134.726,99

标签: jsf converter currency negative-number


【解决方案1】:

怎么样:

<f:convertNumber type="currency" currencySymbol="$" locale="DE" 
      pattern="¤###,###,##0.00;¤-###,###,##0.00"    />

模式描述here


注意:我使用locale="DE",因为在此语言环境中, 用作小数分隔符,. 用作组分隔符。

【讨论】:

    【解决方案2】:

    实现Converter 并覆盖getAsString() 方法为:

    
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value == null)
                    return "";
        return "$"  + String.valueOf(NumberFormat.getNumberInstance(Locale.US).format(value));
    }
    

    【讨论】:

    • “这个问题有什么不同于创建我自己的转换器的解决方案吗?”
    • 我遇到了这个问题,我得到的唯一解决方案就是上面的那个。
    • 不错!!但是,使用在另一个答案中传递的pattern 有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2018-04-27
    • 2013-09-29
    • 2011-03-08
    相关资源
    最近更新 更多