Maison >Java >javaDidacticiel >Comment validez-vous les entrées des utilisateurs dans Spring MVC ?

Comment validez-vous les entrées des utilisateurs dans Spring MVC ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 18:30:02954parcourir

How do you validate user input in Spring MVC?

Validation des entrées utilisateur dans Spring MVC : un guide complet

La validation des entrées utilisateur est cruciale pour garantir l'intégrité et la fiabilité des données de formulaire sur le Web candidatures. Spring MVC propose plusieurs approches pour accomplir cette tâche, chacune avec ses avantages et ses inconvénients.

Méthode 1 : Validation basée sur les annotations

Pour des exigences de validation simples, Spring 3. x et versions ultérieures introduisent l'utilisation des annotations javax.validation.constraints. Ces annotations sont appliquées directement aux propriétés du bean, les marquant comme requises ou soumises à des contraintes spécifiques. Par exemple :

<code class="java">public class User {

    @NotNull
    private String name;

    ...

}</code>

Dans votre contrôleur, vous pouvez utiliser @Valid et @ModelAttribute pour effectuer la validation :

<code class="java">@RequestMapping(value="/user", method=RequestMethod.POST)
public createUser(Model model, @Valid @ModelAttribute("user") User user, BindingResult result){
    if (result.hasErrors()){
      // do something
    }
    else {
      // do something else
    }
}</code>

Méthode 2 : validation manuelle

Pour des exigences de validation plus complexes, il est recommandé d'implémenter manuellement la logique de validation à l'aide de l'interface org.springframework.validation.Validator.

<code class="java">public class UserValidator implements Validator {

    @Override
    public boolean supports(Class clazz) {
      return User.class.equals(clazz);
    }

    @Override
    public void validate(Object target, Errors errors) {
      User user = (User) target;

      if(user.getName() == null) {
          errors.rejectValue("name", "your_error_code");
      }

      // do "complex" validation here

    }

}</code>

Dans votre contrôleur :

<code class="java">@RequestMapping(value="/user", method=RequestMethod.POST)
public createUser(Model model, @ModelAttribute("user") User user, BindingResult result){
    UserValidator userValidator = new UserValidator();
    userValidator.validate(user, result);

    if (result.hasErrors()){
      // do something
    }
    else {
      // do something else
    }
}</code>

Méthode 3 : Approche combinée

La combinaison de la validation basée sur les annotations et de la validation manuelle peut tirer parti des avantages des deux approches.

Avertissement :

La gestion de la validation ne doit pas être confondue avec la gestion des exceptions. La validation concerne les règles métier et les contraintes de données de votre application, tandis que la gestion des exceptions corrige les erreurs système.

Références :

  • [Article de blog sur la validation de Bean] (https://dzone.com/articles/bean-validation-without-ejb)
  • [Article de blog sur la validation avec Spring MVC](https://www.baeldung.com/spring-mvc-validation )
  • [Documentation Spring sur la validation](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/annotation/package-summary.html)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn