Wicket FloatConverter setNumberFormat

Wicket FloatConverter setNumberFormat

在 Wicket 6 中,FloatConverter class 有一个 setNumberFormat 方法。

在 Wicket 7 中不再可用。

我用它来修改文本字段的默认 3 位小数限制。 有没有其他方法可以做到这一点?

为此使用 AbstractDecimalConverter#newNumberFormat(Locale)。您可以覆盖它并配置细节。

public class MyFloatConverter extends FloatConverter {
  @Override protected NumberFormat newNumberFormat(final Locale locale)
    {
        NumberFormat nf = NumberFormat.getInstance(locale);
        nf.setXyz(); // <<- customize the NumberFormat here 
        return nf;
    }
}

您可以将此转换器设置为 YourApplication.java 中的默认转换器:

  @Override protected ConverterLocator newConverterLocator()
  {
        ConverterLocator cl = super.newConverterLocator();
        cl.set(Float.class, new MyFloatConverter());
        return cl;
    }
}

或在特定组件中重写其 #getConverter(Class) 方法;

我将你的 MyFloatConverter 用于我的 TextField:

@Override
public final IConverter getConverter(Class type) {
    FloatConverter fc = new MyFloatConverter();
    return fc;
}