J'ai une application Spring MVC qui communique avec le frontend avec AJAX/JSON, et j'ai dans le frontend une application web avec HTML.Spring MVC 3 -> Validation
Pour ajouter un élément à la base de données, je fais cela dans le système back-end:
@RequestMapping(value="add/", method=RequestMethod.POST)
public @ResponseBody SerializePerson addProject(@RequestBody Person person) {
Person p = this.personService.addPerson(person);
return new SerializePerson(p.getId(), p.getName(), p.getEmail());
}
Mais maintenant j'ai le problème (ce qui est un exemple très simple), que quelqu'un peut créer un projet sans nom, donc le nom = "" et une adresse email non valide. Mon problème est que je veux valider les champs dans le système backend.
donc j'ai trouvé une vitrine Spring MVC ici: https://src.springsource.org/svn/spring-samples/mvc-showcase/src/main/java/org/springframework/samples/mvc/validation/
Ils le font:
@RequestMapping("/validate")
public @ResponseBody String validate(@Valid JavaBean bean, BindingResult result) {
if (result.hasErrors()) {
return "Object has validation errors";
} else {
return "No errors";
}
}
Alors, est-ce la meilleure façon? Je dois donc faire deux étapes:
- valident l'objet Personne (si aucune erreur, passez à l'étape 2, montrer autrement message d'erreur à l'utilisateur)
- écrire l'objet Personne à la datbase
N'est-il pas possible de combiner ces deux étapes en une seule étape? Et comment puis-je mettre l'objet Person POST du frontend à la méthode "validate" dans le backend et voir quel champ échoue (nom ou email), car dire seulement "Object has validation errors" n'est pas si bon :-)?
Cordialement.