2014-05-07 3 views
0

Je suis nouveau au printemps 3 MVC et a essayé de implemnt ConstrainValidation suivant this mais la partie de validation n'a pas travaillé, la méthode isValid n'a pas obtenu invoqué. Je ne sais pas si je me manque quelque chose dans ma configuration, voici ce que j'ai essayé:Spring 3 MVC ConstraintValidator Validation: méthode isValid ne s'invoqué

Employee.java

public class Employee { 

@Phone 
private String phone; 

public String getPhone() { 
    return phone; 
} 

public void setPhone(String phone) { 
    this.phone = phone; 
} 
} 

Phone.java

@Documented 
@Constraint(validatedBy = {PhoneValidator.class}) 
@Target({ ElementType.METHOD, ElementType.FIELD }) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Phone { 

String message() default "{Phone}"; 

Class<?>[] groups() default {}; 

Class<? extends Payload>[] payload() default {}; 

} 

PhoneValidator.java

public class PhoneValidator implements ConstraintValidator<Phone, String>{ 

@Override 
public void initialize(Phone phone) { 
    // TODO Auto-generated method stub 

} 

@Override 
public boolean isValid(String phoneField, ConstraintValidatorContext cxt) { 
    if(phoneField == null) { 
     return false; 
    } 
    return phoneField.matches("[0-9()-\\.]*"); 
} 
} 

Contrôleur

@RequestMapping(value="done") 
public String displaySuccess(@Valid Employee employee,BindingResult result,Model model){ 
    if(result.hasErrors()){ 
     System.out.println("Validation Failed!!!"); 
     return "display"; 
    }else{ 
     System.out.println("Validation Succeeded!!!"); 
     return "done"; 
    } 

} 

context.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:p="http://www.springframework.org/schema/p" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<context:annotation-config /> 
<context:component-scan 
    base-package="com.xxx" /> 

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/pages/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 
</beans> 

Quelqu'un peut-il s'il vous plaît indiquer ce que je manque? La validation Phone ne fonctionne pas, la méthode isValid n'est également pas appelée.

Répondre