ในบทความก่อนหน้านี้ฉันแนะนำคำอธิบายโดยละเอียดเกี่ยวกับการเรียนรู้ฤดูใบไม้ผลิ IOC 1 ของ IOC 1 และพยายามใช้คำอธิบายประกอบและรหัส Java ให้มากที่สุด ถัดไปบทความนี้มุ่งเน้นไปที่การแนะนำหมายเหตุการเรียนรู้ของฤดูใบไม้ผลิการตรวจสอบข้อมูลแบบฟอร์ม 2 และรหัสตัวอย่างอัปโหลดไฟล์ สำหรับรายละเอียดโปรดดูบทความนี้!
1. การตรวจสอบข้อมูลแบบฟอร์ม
เมื่อลงทะเบียนผู้ใช้จะต้องกรอกข้อมูลในบัญชีรหัสผ่านอีเมลและหมายเลขโทรศัพท์มือถือซึ่งจำเป็นและต้องปฏิบัติตามรูปแบบบางอย่าง ตัวอย่างเช่นบัญชีต้องน้อยกว่า 32 หลักอีเมลจะต้องเป็นไปตามรูปแบบอีเมลและหมายเลขโทรศัพท์มือถือจะต้องเป็นหมายเลข 11 หลัก ฯลฯ คุณสามารถใช้ข้อมูลการตรวจสอบในเวลาที่ลงทะเบียนหรือเขียนคลาสเครื่องมือโดยเฉพาะสำหรับการตรวจสอบ ลองมาดูวิธีการใช้การตรวจสอบข้อมูลแบบฟอร์มผ่านคำอธิบายประกอบอย่างง่ายใน SpringMVC
ภายใต้แพ็คเกจ javax.validation.constraints มีการกำหนดคำอธิบายประกอบหลายรายการ ตัวอย่างเช่น:
@NotNull: ค่าขององค์ประกอบที่มีคำอธิบายประกอบจะต้องไม่เป็นโมฆะ หมายเหตุ: หากคุณไม่กรอกข้อมูลใด ๆ ในแบบฟอร์มมันไม่ได้หมายความว่ามันเป็นโมฆะ แต่เป็นสตริงที่ว่างเปล่า
@Size: องค์ประกอบที่มีคำอธิบายประกอบจะต้องเป็นสตริงคอลเลกชันหรืออาร์เรย์และความยาวจะต้องตรงตามช่วงที่กำหนด
@Past: ค่าขององค์ประกอบที่มีคำอธิบายประกอบจะต้องเป็นเวลาที่ผ่านมา
@Digits: องค์ประกอบที่มีคำอธิบายประกอบจะต้องเป็นตัวเลขและค่าของมันจะต้องมีจำนวนตัวเลขที่ระบุ
@Pattern: ค่าขององค์ประกอบที่มีคำอธิบายประกอบจะต้องตรงกับนิพจน์ทั่วไปที่กำหนด
นอกจากนี้มีการกำหนดคำอธิบายเพิ่มเติมภายใต้ org.hibernate.validator.constraints ตัวอย่างเช่น:
@Email: จับคู่รูปแบบอีเมล
@URL: จับคู่รูปแบบ URL
มาดูวิธีการใช้ใน SpringMVC
1. โหลดครั้งแรกที่ต้องการในไฟล์ pom.xml
<erperency> <sderctId> Javax.validation </groupId> <ratifactId> การตรวจสอบความถูกต้อง-API </artifactid> <Sersion> 1.1.0.Final </เวอร์ชั่น> </perdency> <การพึ่งพา> <roupid> org.hibernate </groupId>
ควรสังเกตว่า javax.validation กำหนดเฉพาะการตรวจสอบ API และการดำเนินการของ API จะต้องเพิ่มเช่น org.hibernate.validator มิฉะนั้นจะมีการรายงานข้อผิดพลาด
2. เพิ่มคำอธิบายประกอบเข้ากับคุณสมบัติของคลาสโดยใช้ user.java เป็นตัวอย่าง
ผู้ใช้ระดับสาธารณะใช้ serializable {@size (min = 32, max = 32, message = "uuid ควรเป็นสตริง 32 บิต") id สตริงส่วนตัว; @size (min = 1, max = 32, message = "ความยาวบัญชีควรอยู่ระหว่าง 1-32-bit") ว่าง ")@email (message =" อีเมลไม่ว่าง ") อีเมลสตริงส่วนตัว; @Size (min = 11, max = 11, message =" ความยาวของหมายเลขโทรศัพท์มือถือคือ 11 หลัก ") โทรศัพท์มือถือสตริงส่วนตัว;} ข้อความ: หากการตรวจสอบข้อมูลแบบฟอร์มล้มเหลวสามารถแสดงข้อความแสดงข้อผิดพลาดได้
3. ใช้ฟังก์ชั่นการตรวจสอบใน USERCONTROLLER และเพิ่มคำอธิบายประกอบ @Valid
ใช้ usercontroller.java เป็นตัวอย่าง:
@controller@requestmapping ("/user") คลาสสาธารณะ userController {ผู้ใช้ส่วนตัวผู้ใช้บริการผู้ใช้งาน; @autowiredPublic UserController (ผู้ใช้ Userservice userservice) {this.userService = userservice;}@requestmapping (value = "/register" วัตถุผู้ใช้ใช้ฟังก์ชั่นการตรวจสอบถ้า (errors.haserrors ()) {// ถ้าการตรวจสอบแบบฟอร์มล้มเหลวให้กลับไปที่หน้าการลงทะเบียนคืน "ลงทะเบียน";} ถ้า (user.getId () == "") user.setId (uuid.randomuuid (). toString () 0) user.setRegDate (วันที่ใหม่ (). getTime ()); userservice.adduser (ผู้ใช้); การเปลี่ยนเส้นทาง:/ผู้ใช้/" + user.getUserName ();}} 4. เขียนไฟล์ JSP และแสดงหน้าโดยใช้ register.jsp เป็นตัวอย่าง:
<%@ page contentType = "text/html; charset = utf-8" language = "java"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> uri = "http://www.springframework.org/tags/form" %> < %@ page session = "false" %> <html lang = "en"> <head> <title> register </title> >/head> <body> <sf: method method = "post" action = "/register/user/register" commandname = "ผู้ใช้"> <%-หากการตรวจสอบข้อมูลแบบฟอร์มล้มเหลวข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น-%> <sf: path isrors = "*" element = "div" cssclass = "ข้อผิดพลาด"/> </td> <td> <sf: path input = "ชื่อผู้ใช้" csserrorclass = "ข้อผิดพลาด"/> </td> <tr> <td> รหัสผ่าน: </td> <td> <sf: password path = "รหัสผ่าน" csserrorclass = "ข้อผิดพลาด"/> </td> </td> path = "อีเมล" csserrorclass = "ข้อผิดพลาด"/> </td> </tr> <tr> <td> โทรศัพท์มือถือ: </td> <td> <sf: อินพุตพา ธ = "โทรศัพท์มือถือ" csserrorclass = "ข้อผิดพลาด"/> </td> </tr> value = "register"/> </sf: form> </body> </html>
เอฟเฟกต์สุดท้ายมีดังนี้:
2. การอัปโหลดไฟล์
ในฤดูใบไม้ผลิการอัปโหลดไฟล์เป็นเรื่องง่ายและใช้เวลาเพียง 3 ขั้นตอน
1. หาก DispartCherservlet เรากำหนดค่ามรดก AbstractannotationConfigDispatcherservletInitializer ให้โอเวอร์โหลดเมธอด CustomizeRegistration () เพื่อกำหนดค่ารายละเอียดเฉพาะของ multipart
@OverrideProtected Void CustomizeRegistration (ServletRegistration.Dynamic Registration) {// จำกัด ขนาดไฟล์ที่อัปโหลดไม่เกิน 2MB คำขอทั้งหมดไม่เกิน 4M และไฟล์ที่อัปโหลดทั้งหมดจะต้องเขียนลงในการลงทะเบียนดิสก์ 0));} 2. กำหนดค่าตัวแยกวิเคราะห์แบบหลายส่วน
// กำหนดค่า Multipart Resolver @BeanPublic MultipartResolver MultipartResolver () พ่น IOExcept
3. ดำเนินการตามคำขอ Multipart สำหรับข้อมูลเช่นไฟล์ที่อัพโหลดโดยผู้ใช้คุณสามารถใช้อาร์เรย์ BYTE [] เพื่อแสดง แต่ขอแนะนำว่าแนะนำให้ใช้อินเทอร์เฟซ MultipArtFile โดย Spring มันมีฟังก์ชั่นเพิ่มเติมเช่นการรับชื่อไฟล์ขนาดไฟล์ประเภทไฟล์ ฯลฯ
@RequestMapping (value = "/{username}", method = requestMethod.post) สตริงสาธารณะ showuserInfo (@requestPart ("ไอคอน") ไอคอน MultipartFile) พ่น IOException {icon.transferto (ไฟล์ใหม่ ("/ผู้ใช้/pingping/pingping/pingping icon.getoriginalfilename ())); return "user";} วิธีการ transferto (ไฟล์ dest): เขียนไฟล์ไปยังระบบ
เขียนการทดสอบหน้าเพื่อดูว่าไฟล์ในไดเรกทอรีไฟล์ที่ระบุได้รับการอัปโหลดสำเร็จหรือไม่
<form method = "post" enctype = "multipart/form-data"> <lable> อัปโหลดภาพ Avatar หรือไม่ </label> <อินพุต type = "file" name = "icon" accept = "image/jpeg, image/png" value = "select file"/> <button type = "ส่ง"
1. ข้อมูลอ้างอิง: การปฏิบัติในทางปฏิบัติของฤดูใบไม้ผลิ (ฉบับที่ 4)
2. ที่อยู่ GitHub: https://github.com/everseeker0307/register
ข้างต้นคือการตรวจสอบข้อมูลแบบฟอร์มและรหัสตัวอย่างการอัปโหลดไฟล์ของหมายเหตุการเรียนรู้ฤดูใบไม้ผลิ 2 แนะนำให้คุณรู้จักโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!