El formateo de números en Thymeleaf se logra utilizando la función #numbers.formatNumber
, que permite mostrar números en formatos específicos según la configuración local.
Ejemplo:
<p th:text="#{#numbers.formatNumber(${precio}, 2, 'COMMA', 'DOT')}"></p>
En este ejemplo, se está formateando el valor de precio
para mostrarlo con dos decimales y un separador de miles usando una coma (,
) y un separador de decimales con un punto (.
).
El formateo de fechas en Thymeleaf utiliza la función #dates.format
, que permite mostrar fechas en diferentes formatos.
Ejemplo:
<p th:text="#{#dates.format(${fechaNacimiento}, 'dd/MM/yyyy')}"></p>
En este ejemplo, la variable fechaNacimiento
se muestra en formato dd/MM/yyyy
, lo que la renderiza como, por ejemplo, 15/08/2024
.
th:field
para el Formateo AutomáticoCuando trabajas con formularios, Thymeleaf automáticamente gestiona el formateo de números y fechas con el uso de th:field
al estar enlazado con un atributo de tipo java.util.Date
o java.lang.Number
en el modelo.
Ejemplo:
<input type="text" th:field="*{precio}" /> <!-- Formato automático de número -->
<input type="text" th:field="*{fechaNacimiento}" /> <!-- Formato automático de fecha -->
En este caso, si la variable precio
es un número, el formato aplicado automáticamente será según la configuración local del servidor. De igual manera con la fecha.
Para personalizar el formato de números o fechas, es posible utilizar configuraciones específicas en el archivo de propiedades de internacionalización.
Ejemplo de archivo messages.properties
:
precio.format=###,###.## €
fechaNacimiento.format=dd MMMM yyyy
En este ejemplo, precio.format
define cómo se mostrarán los precios, mientras que fechaNacimiento.format
define cómo se mostrará la fecha.
📝 Nota
Para formatear correctamente los números y fechas en Thymeleaf, asegúrate de que tu aplicación esté configurada con la localización adecuada (por ejemplo, LocaleContextHolder en Spring).