formatting - mvc - spring form date
¿Cómo mostrar un DateTime formateado en Spring MVC 3.0? (2)
Tengo un campo Joda-DateTime en mi modelo y quiero mostrarlo formateado en una vista JSP. Lo he anotado con la nueva anotación @DateTimeFormat:
public class Customer {
private DateTime dateOfBirth;
@DateTimeFormat(style="M-")
public DateTime getDateOfBirth() {
return dateOfBirth;
}
}
Ahora quiero mostrar el dateOfBirth en mi JSP:
Date of birth: ${customer.dateOfBirth}
Pero el resultado está sin formato:
Date of birth: 2010-08-11T11:23:30.148+02:00
Después de algunas investigaciones, descubrí que tengo que usar spring: bind-tag:
<spring:bind path="customer.dateOfBirth">
Date of birth: ${status.value}
</spring:bind>
Con esto funciona. Pero parece demasiado complicado para esta simple tarea. Y el uso de este método en listas es aún más complicado, ya que tiene que integrar el índice de lista en la ruta de enlace.
Entonces, mi pregunta es: ¿hay una forma más sencilla de mostrar un valor formateado usando las anotaciones de formato de primavera?
Debido a que es un objeto datetime de joda y no un objeto Date, tendrá que escribir su propia función de formato o una etiqueta personalizada.
Si puede convertirlo a java.util.Date de alguna manera, entonces puede usar la biblioteca de fmt fmt fmt jstl.
<fmt:formatDate value="${customer.dateOfBirth}" type="both"
pattern="MM-dd-yyyy" />
Pero el último jsp rápidamente te permite crear fmt custom .
Use la etiqueta spring:eval
que entiende la regla @DateTimeFormat
:
<spring:eval expression="customer.dateOfBirth" />
Alternativamente, puede eliminar la regla @DateTimeFormat
de su modelo de todos juntos y usar la etiqueta formatDate de Joda como lo ilustra Naikus.
En una versión futura, Spring planea admitir la conexión de "SpEL", que es el "Spring Expression Language" invocado por spring: eval, como la implementación predeterminada de Unified EL para sus páginas JSP. Esto permitiría que las expresiones en línea como ${customer.dateOfBirth}
se enruten a través de SpEL. Puede votar esta solicitud de mejora aquí: https://jira.spring.io/browse/SPR-7459 .