问题
I know that a DateTimeFormat annotation can be defined on Date properties of a Model class in Spring but is there any way of defining a default dateTimeFormat annotation for all Dates in Spring Model classes?
@DateTimeFormat(pattern = "MM/dd/YYYY")
private Date deliveryDate;
It will save me from annotating each date field. It will also make it easy for me to change the application wide date format later on.
回答1:
As kuhajeyan mentioned, you can use binder, but not on a controller, rather on controller advice, that will apply it globally:
@ControllerAdvice
public class GlobalDateBinder {
/* Initialize a global InitBinder for dates*/
@InitBinder
public void binder(WebDataBinder binder) {
// here you can use kuhajeyan's code
}
}
回答2:
in your controller
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/YYYY");
binder.registerCustomEditor(Date.class, new CustomDateEditor(
dateFormat, false));
}
来源:https://stackoverflow.com/questions/40644368/setting-default-datetimeformat-annotation-in-spring