Spring initBinder не вызывает CustomDateEditor
Я пытаюсь связать строковый параметр формы ввода со свойством даты компонента, используя следующий код. Я хочу привязать форматер даты только к определенному свойству с именем registrationDate
бобов User
, Я пробовал разные способы указать имя поляregistrationDate
в вызове binder.registerCustomEditor
но CustomDateEditor
никогда не звонят.
CustomDateEditor
работает только если я выбрасываю имя поля из binder.registerCustomEditor
вызовите и сделайте его глобальным для всех полей даты, как показано последней закомментированной строкой в initBinderAll()
Метод в контроллере ниже. Надеюсь, кто-то указывает мне в правильном направлении.
user.jsp: -
<form:form action="/some_url" modelAttribute="user">
<input type="text" id="registrationDate" name="registrationDate" value="${regDate}" />
</form:form>
User.java: -
@Entity
@Table(name="user")
public class User {
@Column(name = "reg_date")
@Temporal(TemporalType.DATE)
private Date registrationDate;
}
UserController.java: -
@Controller
public class UserController {
@RequestMapping(value = "/some_url", method = RequestMethod.POST)
public String handleSubmission(
@ModelAttribute("user")@Valid User user, BindingResult result) throws IOException {
}
@InitBinder
public void initBinderAll(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, "user.registrationDate", new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), false));
binder.registerCustomEditor(Date.class, "User.registrationDate", new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), false));
binder.registerCustomEditor(Date.class, "registrationDate", new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), false));
//binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-dd-MM"), true));
}
}