English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Validation MVC Spring

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.

API de validation de Bean

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.

Annotation de validation

Voyons quelques annotations de validation courantes.

AnnotationDescription
@NotNullIl détermine que la valeur ne peut pas être vide.
@MinDéterminer que le nombre doit être égal ou supérieur à la valeur spécifiée.
@MaxDéterminer que le nombre doit être égal ou inférieur à la valeur spécifiée.
@Size@Size
确定大小必须等于指定的值。@Pattern

它确定序列遵循指定的正则表达式。

Spring MVC验证示例*在此示例中,我们创建了一个包含输入字段的简单表单。在此,(

1)表示必须输入相应的字段。否则,表格会产生错误。

、将依赖项添加到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>

2、创建bean类

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

3、créer une classe de contrôleur

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";
    }
  }
}

4、dans le fichier web.xml, fournir des entrées de contrôleur

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>

5、définition de Bean dans le fichier xml

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>

6、création de la page de demande

index.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<body>
<a href="hello">Cliquez ici...</a>
</body>
</html>

7、création d'autres composants de vue

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.