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.