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));
    }
}

0 ответов

Другие вопросы по тегам