2010-11-29 6 views
3

que je fais une validation du formulaire de printemps, mais je reçois:validation de printemps: ne peut pas convertir de chaîne à ce jour

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 

Cependant, dans ma forme modelAttribute je:

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

Je pensais que le DateTimeFormat était responsable de cela? J'utilise hibernate-validator 4.0.

+0

Avez-vous ''? – axtavt

+0

Oublié de mentionner, ceci est dans un portlet de sorte que le mvc: annotation-driven ne fonctionne pas. J'utilise: \t \t \t \t \t \t jack

+0

\t \t \t – jack

Répondre

9

Theres une chance que vous devrez utiliser enregistrer un CustomDateEditor dans votre contrôleur (s) pour convertir d'une chaîne à une date. La méthode d'exemple ci-dessous va dans votre contrôleur, mais vous devrez changer le format de date pour correspondre à tout ce que vous utilisez.


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

Pour utiliser @DateTimeFormat vous devez installer FormattingConversionServiceFactoryBean. <mvc:annotation-driven>-t-il implicitement, mais si vous ne pouvez pas l'utiliser, vous besoin de quelque chose comme ceci:

<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> 
Questions connexes