如何在JSF 1.2中扩展转换器

时间:2013-01-28 14:58:11

标签: java jsf jsf-1.2

我不喜欢f:convertNumber显示NaN("\ufffd")和两个无穷大("\u221e")的方式。

有没有办法扩展开箱即用的转换器以注入我自己的显示逻辑?谢谢。

1 个答案:

答案 0 :(得分:1)

要做到这一点:

  1. 创建一个扩展NumberConverter
  2. 的类
  3. 通过明确处理您的特殊值来覆盖getAsString方法,并将super推迟到所有其他方法。伪代码:

    getAsString(FacesContext ctx, UIComponent component, Object value) {
        if (value is NaN) {
            return your-own-NaN-string;
        }
    
        if (value is infinity) {
            return your-own-infinity-string;
        }
    
        return super.getAsNumber(ctx, component, value);
    }
    
  4. 将该类注册为转换器并使用它而不是f:convertNumber