Estou fazendo um trabalho para a faculdade e estou utilizando o spring. ao usar o validador ele verifica os campos perfeitamente mas quando chamo o método que lista ele retorna um erro falando que o não é um alvo valido mesmo nao tendo nenhuma anotação de @valid nesse método.
controller
@Controller
public class AppController {
@Autowired
private AppDao appDao;
@Autowired
private UsuarioDao usuarioDao;
@InitBinder
public void initBinder(WebDataBinder binder){
binder.addValidators(new AppValidation());
}
@RequestMapping("/app/formApp")
public ModelAndView formApp() {
return new ModelAndView("/app/formApp");
}
@RequestMapping(value = "/app", method = RequestMethod.POST)
public ModelAndView salva(@Valid App app, BindingResult result, RedirectAttributes redirectAttributes) {
if(result.hasErrors()){
return formApp();
}
Usuario usuario = usuarioDao.localizarPorId(1);
app.setUsuario(usuario);
appDao.salva(app);
redirectAttributes.addFlashAttribute("mensagemUsuarioSucesso", "App cadastrado com sucesso!");
return new ModelAndView("redirect:app");
}
@RequestMapping(value = "/app", method = RequestMethod.GET)
public ModelAndView paginaUsuario() {
return new ModelAndView("/usuario/paginaUsuario");
}
@RequestMapping("/app/listaApp")
public ModelAndView listar() {
ModelAndView modelAndView = new ModelAndView("/app/listaApp");
Usuario usuario = usuarioDao.localizarPorId(1);
modelAndView.addObject("apps", usuarioDao.getApps(usuario));
modelAndView.addObject("usuario", usuario);
return modelAndView;
}
}
validation:
public class AppValidation implements Validator{
@Override
public boolean supports(Class<?> clazz) {
return App.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, "nome", "field.required");
ValidationUtils.rejectIfEmpty(errors, "link", "field.required");
}
}