کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Custom Validation-Java Spring

اعتبار سنجی سفارشی

اعتبار سنجی سفارشی (custom validation) Spring MVC

فریمورک MVC Spring به ما اجازه می دهد اعتبار سنجی های سفارشی اعمال کنیم. در این مورد، ما نمادگذاری های خودمان را اعلام می کنیم. می توانیم اعتبار سنجی را بر اساسbusiness logic خود اعمال کنیم.


مثال اعتبار سنجی سفارشی MVC Spring

در این مثال، برای اعتبار سنجی ورودی کاربر، از نمادگذاری های از قبل تعریف شده و نمادگذاری های سفارشی استفاده می کنیم.

1- وابستگی ها را به فایل pom.xml اضافه کنید.

pom.xml

< !-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->  
< dependency>  
     < groupId>org.springframework< /groupId>  
     < artifactId>spring-webmvc< /artifactId>  
     < version>5.1.1.RELEASE< /version>  
< /dependency>  
< !-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper -->  
< dependency>  
     < groupId>org.apache.tomcat< /groupId>  
     < artifactId>tomcat-jasper< /artifactId>  
     < version>9.0.12< /version>  
< /dependency>  
     < !-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->  
< dependency>    
     < groupId>javax.servlet< /groupId>    
     < artifactId>servlet-api< /artifactId>    
     < version>3.0-alpha-1< /version>    
< /dependency>  
< !-- https://mvnrepository.com/artifact/javax.servlet/jstl -->  
< dependency>  
     < groupId>javax.servlet< /groupId>  
     < artifactId>jstl< /artifactId>  
     < version>1.2< /version>  
< /dependency>  
  < !-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->  
< dependency>  
     < groupId>org.hibernate.validator< /groupId>  
     < artifactId>hibernate-validator< /artifactId>  
     < version>6.0.13.Final< /version>  
< /dependency>  

2- کلاس bean را ایجاد کنید.

Employee.java

package com.javatpoint;  
  
import javax.validation.constraints.Max;  
import javax.validation.constraints.Min;  
import com.javatpoint.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.javatpoint;  
  
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.javatpoint.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 {};  
    //represents additional information about annotation  
        public Class[] payload() default {};  
}  

5- کلاس اعتبار سنج را ایجاد کنید.

PasswordConstraintValidator.java

package com.javatpoint.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

< ?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>  

7-bean را در فایل xml تعریف کنید.

spring-servlet.xml

< ?xml version="1.0" encoding="UTF-8" ?>
  
< beans xmlns="http://www.springframework.org/schema/beans"
          3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          4. xmlns:context="http://www.springframework.org/schema/context"
          5. xmlns:mvc="http://www.springframework.org/schema/mvc"
          6. 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.javatpoint" />
       
     < !--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>  

8- صفحه درخواست شده را ایجاد کنید.

index.jsp

< html>  
< body>  
< a href="hello">Click here...< /a>  
< /body>  
< /html> 

9- سایر اجزای منظر را ایجاد کنید.

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="password" />
  
         < form:errors path="password" cssClass="error" />
  
         < br>< br>
  
           
         Age (*): < form:input path="age" />
  
         < form:errors path="age" cssClass="error" />
           
         < br>< br>
           
         < input type="submit" value="Submit" />
  
     < /form:form>  
< /body>  
< /html>  

final.jsp

< %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
< !DOCTYPE html>
  
< html>  
< body>  
Username: ${emp.name}< br>< br>

Password: ${emp.password}< br>< br>

Age: ${emp.age}  
< br>< br>
  
< /body>  
< /html>  

خروجی :

خروجی
Spring MVC Custom Validation

در اینجا رمزی بدون داشتن دنباله "jtp" وارد کردیم.

Spring MVC Custom Validation1
Spring MVC Custom Validation2

حال رمزی حاوی دنباله "jtp" وارد کردیم.

Spring MVC Custom Validation3
Spring MVC Custom Validation4
1399/01/19 1881 504
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...