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;
}
在 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;
}