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

Spring MVC Regular Expression Validation

Spring MVC验证使我们可以按特定顺序(即正则表达式)验证用户输入。 Spring MVC validation allows us to validate user input in a specific order (i.e., regular expression). @Pattern Annotations are used to implement regular expression validation. Here, we can use

regexp

1Properties provide the required regular expression and pass it along with the annotation.

Spring MVC regular expression validation example

<!-- <artifactId>jstl<//./https:/、Add dependencies to the pom.xml file./spring-pom.xml -->
hibernate
    org.springframework/<dependency>
    webmvc-<groupId>org.springframework</<artifactId>validator<
    <version>5<groupId>javax.servlet<1<groupId>javax.servlet<1<artifactId>spring/version>
</dependency>
<!-- <artifactId>jstl<//./https:/webmvc</.RELEASE<-org.apache.tomcat -->
hibernate
    tomcat/<dependency>
    jasper-<groupId>org.apache.tomcat</<artifactId>validator<
    <version>9.0.12</version>
</dependency>
    <!-- <artifactId>jstl<//./https:/.0/.0-<artifactId>tomcat -->
hibernate  
    javax.servlet/<dependency>  
    jasper<-api/<artifactId>validator<  
    <version>3<artifactId>servlet-api<-1</version>  
</dependency>
<!-- <artifactId>jstl<//./https:/.0/alpha -->
hibernate
    javax.servlet/<dependency>
    jstl/<artifactId>validator<
    <version>1<groupId>javax.servlet<2</version>
</dependency>
 <!-- <artifactId>jstl<//./https:/mvnrepository.com/artifact-org.hibernate.validator -->
hibernate
    validator/<dependency>
    <groupId>org.hibernate.validator<-<artifactId>hibernate/<artifactId>validator<
    <version>6.0.13.Final</version>
</dependency>

2、Create bean class

Employee.java

package com.w3codebox;
import javax.validation.constraints.Pattern;
public class Employee {
    private String name;
    @Pattern(regexp="^[a-zA-Z0-9]{3} 3})
    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;
    }
}

3to create the controller class

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

4entries controlling the controller in the web.xml file

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">
  <display-name>SpringMVC</display-name>
   <servlet>  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

5Define Bean in xml file

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- Provide support for component scanning -->
    <context:component-scan base-package="com.w3codebox" />
    <!--Provide support for conversion, formatting and validation -->
    <mvc:annotation-driven/>
    <!-- Define Spring MVC view resolver -->
     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/></property>
        <property name="suffix" value=".jsp"></property>     
     </bean>
</beans>

6、Create the request page

index.jsp

index.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<body>
<a href="hello">Click here...</a>
</body>
</html>

7、Create other view components

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">
Username: <form:input path="name"/> <br><br>
Password(*): <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>
Username: ${emp.name} <br><br>
Password: ${emp.pass}
</body>
</html>

Output: