Spring:嵌套对象中忽略@DateTimeFormat

时间:2014-12-01 17:52:13

标签: 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 
}

我有一个可以嵌套这些物品的课程。

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 
}

我在PersonGroup中为我的模型添加了@Controler类型的对象 - 这样的方法:

model.addAttribute("myGroup", filledPersonGroup);

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

<form:form modelAttribute="myGroup" action="..." >
    <form:input path="person1.birthdate" >
    <form:input path="person2.birthdate" >
    ...
</form:form >

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

有谁能告诉我怎么办?我希望我的嵌套对象的日期格式正确。

我使用Spring 4.1.1-RELEASE

1 个答案:

答案 0 :(得分:1)

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

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

    public Date getBirthdate(){
       return birthdate;
    }
    // Other getters/setters 
}