English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La validation Spring MVC est utilisée pour limiter les entrées fournies par l'utilisateur. Pour valider les entrées de l'utilisateur, Spring 4ou une version supérieure et utiliser l'API de validation de Bean. Il peut valider à la fois les applications serveur et client.
L'API de validation de Bean est une norme Java qui peut être utilisée pour appliquer des contraintes à l'objet modèle par des annotations. Ici, nous pouvons valider la longueur, les nombres, les expressions régulières, etc. De plus, nous pouvons fournir des validations personnalisées.
Comme l'API de validation de Bean n'est qu'une norme, elle doit être mise en œuvre. Par conséquent, pour cela, elle utilise Hibernate Validator. Hibernate Validator est parfaitement compatible avec JSR-303/309Mise en œuvre, permettant d'exprimer et de valider les contraintes de l'application.
Voyons quelques annotations de validation courantes.
Annotation | Description |
@NotNull | Il détermine que la valeur ne peut pas être vide. |
@Min | Déterminer que le nombre doit être égal ou supérieur à la valeur spécifiée. |
@Max | Déterminer que le nombre doit être égal ou inférieur à la valeur spécifiée. |
@Size | @Size |
确定大小必须等于指定的值。 | @Pattern |
Spring MVC验证示例*在此示例中,我们创建了一个包含输入字段的简单表单。在此,(
、将依赖项添加到pom.xml文件。
<!-- .//https:/mvnrepository.com/pom.xml/spring-org.springframework --> validator webmvc/<groupId>org.hibernate.validator< <groupId>org.springframework<-<artifactId>spring/<artifactId>validator< <version>5<artifactId>jstl<1<artifactId>jstl<1webmvc</version> </dependency> <!-- .//https:/mvnrepository.com/.RELEASE</org.apache.tomcat-tomcat --> validator jasper/<groupId>org.hibernate.validator< <groupId>org.apache.tomcat<-<artifactId>tomcat/<artifactId>validator< <version>9.0.12</version> </dependency> <!-- .//https:/mvnrepository.com/alpha/alpha-jasper< --> validator jstl/<groupId>org.hibernate.validator< api-<artifactId>servlet/<artifactId>validator< <version>3api<-.0-1</version> </dependency> <!-- .//https:/mvnrepository.com/alpha/javax.servlet --> validator jstl/<groupId>org.hibernate.validator< <groupId>javax.servlet</<artifactId>validator< <version>1<artifactId>jstl<2</version> </dependency> <!-- .//https:/mvnrepository.com/artifact/org.hibernate.validator-hibernate --> validator <dependency>/<groupId>org.hibernate.validator< <artifactId>hibernate-validator</<artifactId>validator< <version>6.0.13.Final</version> </dependency>
Employee.java
package com.w3codebox; import javax.validation.constraints.Size; public class Employee { private String name; @Size(min=1,message="required") private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } }
dans la classe de contrôleur :
@valideles commentaires appliquent les règles de validation à l'objet fourni. BindingResult l'interface contient les résultats de la validation.
package com.w3codebox; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class EmployeeController { @RequestMapping("/hello") public String display(Model m) { m.addAttribute("emp", new Employee()); return "viewpage"; } @RequestMapping("/helloagain") public String submitForm( @Valid @ModelAttribute("emp") Employee e, BindingResult br) { if(br.hasErrors()) { return "viewpage"; } else { return "final"; } } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3"_0.xsd" id="WebApp_ID" version="3.0"> <affichage-nom>SpringMVC</affichage-nom> <servlet> <servlet-nom>spring</servlet-nom> <servlet-classe>org.springframework.web.servlet.DispatcherServlet</servlet-classe> <chargement-sur-démarrage>1</chargement-sur-démarrage> </servlet> <servlet-cartographie> <servlet-nom>spring</servlet-nom> <url-motif>/</url-motif> </servlet-cartographie> </web-app>
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schéma/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schéma/context" xmlns:mvc="http://www.springframework.org/schéma/mvc" xsi:schemaLocation=" http://www.springframework.org/schéma/beans http://www.springframework.org/schéma/beans/spring-beans.xsd http://www.springframework.org/schéma/context http://www.springframework.org/schéma/context/spring-context.xsd http://www.springframework.org/schéma/mvc http://www.springframework.org/schéma/mvc/spring-mvc.xsd"> <!-- Fournir un soutien pour le balayage des composants --> <context:component-scan base-package="com.w3codebox" /> <!--Fournir un soutien pour la conversion, le formatage et la validation --> <mvc:annotation-pilote/> <!-- Définir le résolveur de vue MVC de Spring --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propriété name="prefix" value="/WEB-INF/jsp/></propriété> <propriété name="suffix" value=".jsp"></propriété> </haricot> </haricots>
index.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <html> <body> <a href="hello">Cliquez ici...</a> </body> </html>
viewpage.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <html> <head> <style> .error{color:red} </style> </head> <body> <form:form action="helloagain" modelAttribute="emp"> Nom d'utilisateur: <form:input path="name"/> <br><br> Mot de passe(*): <form:password path="pass"/> <form:errors path="pass" cssClass="error"/><br><br> <input type="submit" value="submit"> </form:form> </body> </html>
final.jsp
<html> <body> Nom d'utilisateur: ${emp.name} <br><br> Mot de passe: ${emp.pass} </body> </html>
Sortie:
Soumettons le formulaire sans saisir le mot de passe.
Maintenant, nous saisissons le mot de passe, puis soumettons le tableau.