spring 教程

spring mvc自定义验证 -888棋牌游戏

spring mvc框架允许我们执行自定义验证。在这种情况下,我们声明自己的注释。我们可以根据自己的业务逻辑执行验证。

spring mvc自定义验证示例

在此示例中,我们同时使用预定义的注释和自定义注释来验证用户输入。

1、将依赖项添加到pom.xml文件。

pom.xml


    org.springframework
    spring-webmvc
    5.1.1.release


    org.apache.tomcat
    tomcat-jasper
    9.0.12

    
  
    javax.servlet  
    servlet-api  
    3.0-alpha-1  


    javax.servlet
    jstl
    1.2

 

    org.hibernate.validator
    hibernate-validator
    6.0.13.final

2、创建bean类

employee.java

package com.nhooo;
import javax.validation.constraints.max;
import javax.validation.constraints.min;
import com.nhooo.customvalidation.password;
public class employee {
    private string name;
    //custom annotation
    @password
    private string password;
    //predefined annotation
    @min(value=18, message="must be equal or greater than 18")
    @max(value=45, message="must be equal or less than 45")
    private int age;
    public string getname() {
        return name;
    }
    public void setname(string name) {
        this.name = name;
    }
    public string getpassword() {
        return password;
    }
    public void setpassword(string password) {
        this.password = password;
    }
    public int getage() {
        return age;
    }
    public void setage(int age) {
        this.age = age;
    }   
}

3、创建控制器类

employeecontroller.java

 package com.nhooo;
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 showform(model themodel) {
        
        themodel.addattribute("emp", new employee());
        
        return "viewpage";
    }
    
    @requestmapping("/helloagain")
    public string processform(
            @valid @modelattribute("emp") employee emp,
            bindingresult br) {
                
        if (br.haserrors()) {
            return "viewpage";
        }
        else {
            return "final";
        }
    }
}

4、创建验证器注释

password.java

package com.nhooo.customvalidation;
import java.lang.annotation.elementtype;
import java.lang.annotation.retention;
import java.lang.annotation.retentionpolicy;
import java.lang.annotation.target;
import javax.validation.constraint;
import javax.validation.payload;
@constraint(validatedby = passwordconstraintvalidator.class)
@target( { elementtype.method, elementtype.field } )
@retention(retentionpolicy.runtime)
public @interface password {
    //error message
        public string message() default "must contain jtp";
    //represents group of constraints   
        public class[] groups() default {};
    //表示关于注解的附加信息
        public class[] payload() default {};
}

5、创建验证器类

passwordconstraintvalidator.java

package com.nhooo.customvalidation;
import javax.validation.constraintvalidator;
import javax.validation.constraintvalidatorcontext;
public class passwordconstraintvalidator implements constraintvalidator {
    public boolean isvalid(string s, constraintvalidatorcontext cvc) {
        
        boolean result=s.contains("jtp");
        return result;
    }
}

6、在web.xml文件中提供控制器的条目

web.xml



  springmvc
     
    spring  
    org.springframework.web.servlet.dispatcherservlet  
    1    
  
  
    spring  
    /  
  

7、在xml文件中定义bean

spring-servlet.xml



    
    
    
    
    
     
        
             
     

8、创建请求的页面

index.jsp

click here...

9、创建其他视图组件

viewpage.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    
    
        username:      
        

                 password (*):                   

                 age (*):                   

             

final.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
username: ${emp.name}

password: ${emp.password}

age: ${emp.age}

输出:

spring mvc自定义验证
spring mvc自定义验证

在这里,我们输入密码时无需输入" jtp"序列。

spring mvc自定义验证
spring mvc自定义验证

现在,我们输入的密码具有" jtp"序列。

spring mvc自定义验证
spring mvc自定义验证

888棋牌游戏的友情链接:

网站地图