مشخصات مقاله
-
412
-
0.0
-
1801
-
0
-
0
آموزش 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>
خروجی :
بیاید فرم را بدون وارد کردن رمز ارسال کنیم.
حال رمز را وارد کرده و فرم را ارسال می کنیم.
دانلود فایل jar اعتبار سنج hibernate
اگر از maven استفاده نمی کنید، فایل jar اعتبار سنج hibernate را دانلود کنید.