Frage

Ich bin einige Frühjahr Formularvalidierung zu tun, aber ich bin immer:

Failed to convert property value of type 'java.lang.String' to required type 'ja
va.util.Date' for property 'birthdate'; nested exception is java.lang.Illega
lStateException: Cannot convert value of type [java.lang.String] to required typ
e [java.util.Date] for property 'birthdate': no matching editors or conversi
on strategy found

Doch meiner modelAttribute Form habe ich:

@NotNull
 @Past
 @DateTimeFormat(style="S-")
 private Date birthdate;

Ich dachte, das Datetimeformat verantwortlich war für das?

Ich bin mit dem Hibernate-Validator 4.0.

War es hilfreich?

Lösung

Theres eine Chance, dass Sie eine CustomDateEditor in Ihrem Controller (n) verwenden müssen werden erst registrieren, einen String in ein Datum zu konvertieren. Das beispielhafte Verfahren unten in Ihrem Controller geht, aber Sie werden das Datumsformat zu Spiel ändern müssen, was auch immer Sie verwenden.


@InitBinder
    public void initBinder(WebDataBinder binder) {
        CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"), true);
        binder.registerCustomEditor(Date.class, editor);
    }

Andere Tipps

Um den Einsatz @DateTimeFormat müssen Sie FormattingConversionServiceFactoryBean installieren. <mvc:annotation-driven> tut es implizit, aber wenn Sie es nicht Sie etwas brauchen wie diese verwenden können:

<bean id="conversionService" 
    class="org.springframework.format.support.FormattingConversionServiceFactoryBean" /> 

<bean id="annotationMethodHandlerAdapter"    
    class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="webBindingInitializer">
        <bean id="configurableWebBindingInitializer"
            class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> 
            <property name="validator"><ref bean="validator"/>
            <proeprty name = "conversionService" ref = "conversionService" />
        </bean>
    </property>
</bean>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top