Spring:嵌套对象中忽略@DateTimeFormat

Tar*_*tor 6 java spring spring-mvc

在我的示例中@DateTimeFormat,嵌套对象时忽略注释:

class Person {
    private Date birthdate;
    // other fields

    @DateTimeFormat(pattern="dd.MM.yyyy")
    public Date getBirthdate(){
       return birthdate;
    }
    // Other getters/setters 
}
Run Code Online (Sandbox Code Playgroud)

我有一个嵌套这个对象的类.

class PersonGroup {
    private Person person1;
    private Person person2;
    // other fields

    @Valid
    public Person getPerson1(){
       return person1;
    }

    // also tried without @Valid-Annotation
    public Person getPerson2(){
       return person2;
    }
    // Other getters/setters 
}
Run Code Online (Sandbox Code Playgroud)

PersonGroup在一个@Controler-Method中添加了一个类型的对象给我的模型,如下所示:

model.addAttribute("myGroup", filledPersonGroup);
Run Code Online (Sandbox Code Playgroud)

在JSP中,我使用打印嵌套变量:

<form:form modelAttribute="myGroup" action="..." >
    <form:input path="person1.birthdate" >
    <form:input path="person2.birthdate" >
    ...
</form:form >
Run Code Online (Sandbox Code Playgroud)

但不幸的是,输入字段中的日期值格式不正确(但原则上显示日期).当我直接将类的实例添加Person到模型时,它可以工作.

任何人都可以告诉我如何处理这个问题?我希望我的嵌套对象的日期格式正确.

我用 Spring 4.1.1-RELEASE

小智 1

您是否尝试过注释字段而不是方法?

class Person {
    @DateTimeFormat(pattern="dd.MM.yyyy")
    private Date birthdate;
     // other fields

    public Date getBirthdate(){
       return birthdate;
    }
    // Other getters/setters 
}
Run Code Online (Sandbox Code Playgroud)