Trigger validation by marking a JavaBean parameter as @Valid
The JavaBean will be passed to a Validator for validation
The JavaBean will be passed to a Validator for validation
Binding and validation errors can be trapped and introspected by declaring a BindingResult parameter
Must follow the JavaBean parameter in the method signature
Errors automatically exported in the model when rendering views
Not supported with other request parameter types (@RequestBody, etc)
@RequestMapping("/validate")
public @ResponseBody String validate(@Valid JavaBean bean, BindingResult result) {
if (result.hasErrors()) {
return "Object has validation errors";
} else {
return "No errors";
}
}
JavaBean.java
import java.util.Date;
import javax.validation.constraints.Future;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
public class JavaBean {
@NotNull
@Max(5)
private Integer number;
@NotNull
@Future
@DateTimeFormat(iso=ISO.DATE)
private Date date;
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}