I’m validating incoming attribute, but the validator catches even the other pages not annotated with @Valid
@RequestMapping(value = "/showMatches.spr", method = RequestMethod.GET)
public ModelAndView showMatchPage(@ModelAttribute IdCommand idCommand)
//etc
When I access page /showMatches.spr I get the error org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Invalid target for Validator [cz.domain.controller.Controllers$1@4c25d793]: cz.domain.controller.IdCommand@486c1af3,
The validator doesn’t accept it, but I don`t want it to validate! By this validator:
protected void initBinder(WebDataBinder binder) {
binder.setValidator(new Validator() {
// etc.
}
Spring isn’t going to validate your
IdCommand, butWebDataBinderdoesn’t allow you to set a validator that doesn’t accept the bean being bound.If you use
@InitBinder, you can explicitly specify the name of the model attribute to be bound by eachWebDataBinder(otherwise yourinitBinder()method is applied to all attributes), as follows: