En una aplicación peatonal incorporada, que tienen un campo de texto del número de decimales:Puede hacer que un TextField <BigDecimal> acepte ambos y. como separador decimal?
TextField<BigDecimal> f =
new TextField<BigDecimal>("f", new PropertyModel<BigDecimal>(model, "share"));
quiero que aceptar siempre ambos. (punto) y, (coma) como separador decimal (independientemente de de la configuración regional del navegador).
Para mostrando el valor, se utiliza la configuración regional del período de sesiones [que en nuestro caso se ve obligado a ser "fi" (-> coma)], pero aquí estoy interesado en lo que el campo acepta como entrada.
Mi pregunta es, ¿tengo que cambiar el campo a TextField<String>
, y convertir al tipo de objeto de dominio (BigDecimal) manualmente? ¿O hay alguna forma de usar TextField<BigDecimal>
(que permite, por ejemplo, utilizar el Validador mínimo de Wicket o RangeValidator) y aún así aceptar ambos separadores decimales?
No tener la documentación conmigo en este momento, pero puede inscribirse convertidores a nivel mundial en su clase de aplicación. Así que puedes registrar tu propia implementación de Convertidor para BigDecimal y aceptar ambas variantes allí – bert
@bert, ¡gracias! Leer * Wicket en acción * (p 163), esa podría ser, de hecho, la mejor manera de abordar esto ... Considera escribir eso como una respuesta, también. – Jonik
Solo una palabra de advertencia: en algunos lugares, ambos caracteres pueden aparecer en el mismo número, es decir, '.' se usa para agrupar miles y', 'como separador decimal. Si desea un analizador de números universal, asegúrese de que su código pueda manejar números como '32.519.100,28'. – biziclop