Hello tous,
J'ai un petit soucis avec la validation de formulaire.
J'essaye de faire tourne une petite application Spring MVC embarqué par Spring Boot dans laquelle j'essaye de faire des validation par le FrameWork.
Dans mon contrôleur j'ai
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 //package & imports @Controller @RequestMapping(path = "/students") public class StudentController { // .... @PostMapping("new") public String newStudent(@Valid @ModelAttribute StudentForm form, Model model , BindingResult bindingResult) { // if (StringUtils.isEmpty(form.getFirstName()) || // StringUtils.isEmpty(form.getLastName())) { if (bindingResult.hasErrors()) { model.addAttribute("bindingResult", bindingResult); model.addAttribute("form", form); model.addAttribute("newStudent", true); return "students/edit/EditStudent"; } Student student = new Student(); student.setFirstname(form.getFirstName()); student.setLastname(form.getLastName()); student = studentService.createStudent(student); return "redirect:/students/"; } //... }
Dans le bean de mon formulaire j'ai
Mon problème est le suivant j'ai voulu supprimer les validations manuelles afin d'utiliser les validation spring de mon formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //package & imports public class StudentForm { @NotNull @Size(min = 2) private String firstName; @NotNull @Size(min = 2) private String lastName; //getters & setters }
Quand je supprime l'annotation @Valid et que je saisie un champs vide dans mon formulaire mon Binding Result ne contient pas d'erreur.
Quand je valide mon formulaire avec des erreurs en gardant l'annotation, je ne passe pas dans la méthode newStudent, et spring me renvoye l'erreur suivante :
Quelqu'un aurait-il une piste pour moi ?There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='studentForm'. Error count: 1
Partager