He estudiado cuidadosamente Jonik's entry para personalizar el formato BigDecimal en Wicket. Gracias por esta excelente pieza de código. Desafortunadamente no puedo hacer que funcione para mi caso de uso.Registro global de formatos de campo en Wicket
Quiero registrar el formato de fecha a nivel mundial y estoy usando el siguiente código en la subclase de aplicación:
@Override
protected IConverterLocator newConverterLocator() {
ConverterLocator converterLocator = new ConverterLocator();
converterLocator.set(Date.class, new DateConverter() {
@Override
public DateFormat getDateFormat(Locale ignore) {
return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
}
});
return converterLocator;
}
Luego, cuando el uso de los campos de fecha en las páginas web el código es el siguiente:
form.add(new TextField<Date>("dateField"));
Cuando se procesa, los campos de fecha muestran el formato estándar java.text.DateFormat.SHORT
(02.11.11 11:59) que viene de la clase org.apache.wicket.util.convert.converter.DateConverter
en lugar de mi SimpleDateFormat personalizado (02.11.2011 11:59:42).
He comprobado que java.util.Date se usa en todo momento. La versión de Wicket es 1.4.12.
¿Alguna idea?
Esto funciona bien en un inicio rápido 1.4.12, utilizando el nuevo TextField ("dateField", nuevo Modelo (new Date()). ¿Cuál es el modelo de TextField? Si el Formulario tiene un CompoundPropertyModel, ¿qué clase es la propiedad con la que dateField resuelve? –
Gracias Xavi. El formulario es un 'CompoundPropertyMobile' que se refiere a una entidad de persistencia cuyo' dateField' es java.util.Date. Como estamos utilizando entidades de persistencia, los campos al final de los encadenamientos getter/setter son tipos de datos en bruto de Java, no implementaciones de IModel. ¿Este es el problema? –
¿Está seguro de que su 'newConverterLocator()' está siendo utilizado? ¿Ha depurado a través de 'Component.getConverter (Class)' para ver qué está pasando? Puede hacer esto fácilmente poniendo un punto de interrupción en una anulación en este componente en particular. –