Maison > Java > javaDidacticiel > Comment puis-je valider les entrées utilisateur dans une application Spring MVC ?

Comment puis-je valider les entrées utilisateur dans une application Spring MVC ?

Patricia Arquette
Libérer: 2024-11-02 07:41:29
original
392 Les gens l'ont consulté

How can I validate user inputs in a Spring MVC application?

Façons de valider les entrées utilisateur avec Spring MVC

Introduction

Lors de la création d'applications Web, garantir la validité des entrées utilisateur est crucial. Spring MVC propose plusieurs méthodes de validation de formulaire, chacune avec ses avantages et son adéquation à des scénarios spécifiques.

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

Spring 3.x introduit les annotations (par exemple, @NotNull) pour une validation concise au niveau du champ. Ces annotations font partie de la norme JSR-303.

Exemple :

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

    @NotNull
    private String name;

    // ...
}</code>
Copier après la connexion
Copier après la connexion

Dans le contrôleur :

<code class="java">@PostMapping("/user")
public void createUser(@Valid @ModelAttribute User user, BindingResult result) {
    // Check for validation errors in the `result` object.
}</code>
Copier après la connexion

Méthode 2 : Validation manuelle

Pour une logique de validation complexe, Spring fournit l'interface org.springframework.validation.Validator. Des validateurs personnalisés peuvent être implémentés pour effectuer des validations spécifiques.

Exemple :

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

    // Validation code here

}</code>
Copier après la connexion

Dans le contrôleur :

<code class="java">@PostMapping("/user")
public void createUser(@ModelAttribute User user, BindingResult result) {
    UserValidator validator = new UserValidator();
    validator.validate(user, result);

    // Check for validation errors in the `result` object.
}</code>
Copier après la connexion

Méthode 3 : Approche hybride

Les annotations et les validations manuelles peuvent être combinées. Utilisez des annotations pour les validations simples et des validateurs pour une logique complexe.

Exemple :

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

    @NotNull
    private String name;

    // ...
}</code>
Copier après la connexion
Copier après la connexion

Validateur personnalisé :

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

    // Complex validation code here

}</code>
Copier après la connexion

Dans le contrôleur :

<code class="java">@PostMapping("/user")
public void createUser(@Valid @ModelAttribute User user, BindingResult result,
                     UserValidator validator) {
    validator.validate(user, result);

    // Check for validation errors in the `result` object.
}</code>
Copier après la connexion

Considérations supplémentaires

  • La gestion de la validation ne doit pas être confondue avec la gestion des exceptions.
  • Évitez la validation en ligne dans le contrôleur pour conserver il est simple et maintenable.
  • Envisagez d'utiliser des annotations de validation personnalisées pour résumer une logique de validation complexe.

Références :

  • [Bean Validation avec Spring](http://www.codejavu.com/platform/spring/bean-validation-with-spring-annotations/)
  • [Validation dans Spring MVC](https://www.baeldung .com/spring-mvc-validation)
  • [Documentation Spring sur la validation](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html# mvc-ann-validation)

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 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