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>
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>
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>
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>
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>
Validateur personnalisé :
<code class="java">public class UserValidator implements Validator { // Complex validation code here }</code>
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>
Considérations supplémentaires
Références :
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!