Maison > Java > javaDidacticiel > le corps du texte

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

Susan Sarandon
Libérer: 2024-10-29 18:30:02
original
857 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!