如何在JSF中为各种组件标准化convertnumber用法?

Ser*_*uşu 4 java jsf primefaces jsf-2

在我的项目中,我使用了大量的h:outputtext和f:convertnumber来将模式应用于我的数字数据.

<h:outputText  value="#{stock.price}">
    <f:convertNumber currencySymbol="" groupingUsed="true" maxFractionDigits="2" type="currency" />
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

在需要其他数据时复制和粘贴此模式似乎很容易.但它也难以管理; 当使用更多时,更改模式似乎需要大量的搜索/替换操作.

如何使此模式在中央位置可重复使用和管理.

Bal*_*usC 6

最简单的方法是创建一个自定义转换器,扩展所需的标准转换器,并在其中设置构造函数中所需的默认值.

@FacesConverter("defaultNumberConverter")
public class DefaultNumberConverter extends NumberConverter {

    public DefaultNumberConverter() {
        setCurrencySymbol("");
        setGroupingUsed(true);
        setMaxFractionDigits(2);
        setType("currency");
    }

}
Run Code Online (Sandbox Code Playgroud)

使用方法如下:

<h:outputText value="#{stock.price}" converter="defaultNumberConverter" />
Run Code Online (Sandbox Code Playgroud)