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

آموزش Spring MVC Validation-Java Spring

Spring MVC Validation

اعتبار سنجی MVC در اسپرینگ

از اعتبار سنجی MVC در اسپرینگ برای محدود کردن داده ارائه شده توسط کاربر استفاده می شود. برای بررسی صحت ورودی کاربر، نسخه 4 و یا بالاتر اسپرینگ از API اعتبار سنجی bean پشتیبانی و استفاده می کند و به خوبی می تواند برنامه های سمت کاربر(client-side) و سمت سرور(server-side) را اعتبار سنجی کند.


API اعتبار سنجی bean

API اعتبار سنجی bean یک مشخصه جاوا (java) است که برای اعمال محدودیت روی مدل شی از طریق نماد گذاری ها استفاده می شود. در اینجا می توانیم یک طول، عدد، عبارت منظم(regular expression) و غیره را اعتبار سنجی کنیم. علاوه بر آن می توانیم اعتبار سنجی های سفارشی نیز ارائه دهیم.

از آنجایی که API اعتبار سنجی bean فقط یک مشخصه است، نیاز به پیاده سازی دارد. بنابراین برای آن از اعتبار سنج hibernate استفاده می کند. اعتبار سنج hibernate یک پیاده سازی JSR-303/309 کاملا سازگار است که اجازه بیان و اعتبار سنجی محدودیت های برنامه کاربردی را می دهد.


نمادگذاری اعتبار سنجی

برخی از نمادگذاری های پرکاربرد برای اعتبار سنجی را با هم می بینیم:

  • @NotNull : تعیین کننده این است که مقدار نمیتواند null باشد.
  • @Min : تعیین کننده این است که عدد باید مساوی یا بزرگتر از مقدار مشخص شده باشد.
  • @Max : تعیین کننده این است که عدد باید مساوی یا کوچکتر از مقدار مشخص شده باشد.
  • @Size: تعیین کننده این است که سایز باید با مقدار مشخص شده برابر باشد.
  • @Pattern : تعیین کننده این است که دنباله از عبارت منظم مشخص شده پیروی کند.

مثال اعتبار سنجی MVC در اسپرینگ

در این مثال یک فرم ساده شامل فیلد های ورودی می سازیم. در اینجا (*) به این معنی است که وارد کردن فیلد مربوطه اجباری است، در غیر این صورت فرم خطا تولید می کند.

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.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- کلاس کنترلر را ایجاد کنید.

در کلاس کنترلر:

  • نماد @Valid قوانین اعتبار سنجی را روی شی ارائه شده اعمال می کند.
  • واسط BindingResult دربردارنده نتیجه اعتبار سنجی است.
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 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- ورودی کنترلر را در فایل 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>

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

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

index.jsp

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

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

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>  

خروجی :

خروجی

بیاید فرم را بدون وارد کردن رمز ارسال کنیم.

Without Password

حال رمز را وارد کرده و فرم را ارسال می کنیم.

With Password
Enter Panel

دانلود فایل jar اعتبار سنج hibernate

اگر از maven استفاده نمی کنید، فایل jar اعتبار سنج hibernate را دانلود کنید.


1399/01/19 1800 410
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

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