Setting default DateTimeFormat Annotation in Spring

心已入冬 提交于 2019-12-20 05:53:30

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!