ตัวอย่างการประมวลผลแบบฟอร์มสปริง MVC ตัวอย่างต่อไปนี้แสดงวิธีการเขียนแอปพลิเคชันบนเว็บแบบง่าย ๆ ที่ใช้รูปแบบ HTML โดยใช้เฟรมเวิร์กเว็บ MVC ของ Spring
การก่อสร้างโครงการทดสอบ
(1) สร้างโครงการ Java Web ใหม่และแนะนำแพ็คเกจ JAR หลายชุดที่จำเป็นสำหรับโครงการ SpringMVC โครงสร้างโครงการและแพ็คเกจ JAR ที่จำเป็นมีดังนี้:
①web.xml:
<web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" เวอร์ชัน = "3.1" <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-mapping> <tilter> <melter-Name> org.springframework.web.filter.characterencodingfilter </filter-class> <int-param> <param-name> <filter-mapping> <filter-name> ตัวละคร actialencodingfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </eb-app>
นี่คือคำต่อท้ายของ SpringMVC ที่สกัดกั้น URL ที่ลงท้ายด้วย. html และการประมวลผล
②springMvc-servlet.xml:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/MVC http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdsd " /> <!-เปิดใช้งานคำอธิบายประกอบที่กำหนดไว้ในถั่ว-> <mvc: คำอธิบายประกอบที่ขับเคลื่อนด้วย/> <bean> <ชื่อคุณสมบัติ = "คำนำหน้า" value = "/web-inf/pages/"/> <property name = "suffix" value = ". jsp"/> </epean>
ในไฟล์การกำหนดค่าข้างต้น <บริบท: คำอธิบายประกอบ-config /> เปิดใช้งานคำอธิบายประกอบบางอย่างที่กำหนดไว้ในถั่วในขณะที่ <MVC: คำอธิบายประกอบที่ขับเคลื่อนด้วย /> เปิดใช้งานการกำหนดค่าเริ่มต้นบางอย่างสำหรับ SpringMVC ในตอนท้ายของไฟล์การกำหนดค่าการติดต่อระหว่างมุมมองเชิงตรรกะและมุมมองจริงจะถูกกำหนด ในคำคำนำหน้าพา ธ และคำต่อท้ายที่กำหนดไว้ข้างต้นจะถูกกำหนดให้กับมุมมองตรรกะที่ส่งคืน นี่คือเส้นทางที่แท้จริงไปยังมุมมองจริง
2. ใช้ SpringMVC เพื่อประมวลผลแบบฟอร์ม
(1) ก่อนที่จะเริ่มต้นอย่างเป็นทางการให้สร้างแบบจำลองและคลาสการแจงนับ:
①ผู้ใช้เอนทิตี:
แพ็คเกจ cn.zifangsky.model; นำเข้า java.time.localdate; นำเข้า org.springframework.format.annotation.datetimeformat; ผู้ใช้ระดับสาธารณะ {ชื่อสตริงส่วนตัว; รหัสผ่านสตริงส่วนตัว งานสตริงส่วนตัว @datetimeformat (pattern = "yyyy-mm-dd") วันเกิดท้องถิ่นส่วนตัว; เพศส่วนตัว ประเทศสตริงส่วนตัว การสูบบุหรี่บูลีนส่วนตัว สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } สตริงสาธารณะ getPassword () {ส่งคืนรหัสผ่าน; } โมฆะสาธารณะ setPassword (รหัสผ่านสตริง) {this.password = รหัสผ่าน; } Public String getJob () {return Job; } โมฆะสาธารณะ setJob (งานสตริง) {this.job = Job; } สาธารณะ localdate getBirthdate () {ส่งคืนวันเกิด; } โมฆะสาธารณะ setBirthDate (วันเกิด localDate) {this.birthdate = วันเกิด; } เพศสาธารณะ getGender () {กลับเพศ; } โมฆะสาธารณะ setGender (เพศเพศ) {this.gender = เพศ; } Public String GetCountry () {Return Country; } โมฆะสาธารณะ setCountry (ประเทศสตริง) {this.country = ประเทศ; } บูลีนสาธารณะ issmoking () {return smoking; } โมฆะสาธารณะ setsmoking (การสูบบุหรี่บูลีน) {this.smoking = การสูบบุหรี่; }} ②การแจงนับเพศคลาสที่แสดงถึง "เพศ":
แพ็คเกจ cn.zifangsky.model; public enum เพศ {ชายหญิง;} ต่อไปนี้จะอธิบายสั้น ๆ เกี่ยวกับการประมวลผลแบบฟอร์มของ SpringMVC ตามกระบวนการดำเนินการโปรแกรมคือการเติมแบบฟอร์มเบื้องหน้า> การประมวลผลคอนโทรลเลอร์> หน้ามุมมองผลลัพธ์การประมวลผล
(2) หน้าโฮมเพจและแบบฟอร์มหน้าของโครงการทดสอบ:
①home page index.jsp:
<% response.sendredirect ("form.html"); -จะเห็นได้ว่าหน้าแรกของเราที่นี่เป็นเรื่องง่ายมากซึ่งคือการเปลี่ยนเส้นทางไปยัง "form.html" แต่ผ่านการกำหนดค่าก่อนหน้าของเราใน web.xml, SpringMVC จะโอนคำขอนี้ไปยังคอนโทรลเลอร์เฉพาะสำหรับการประมวลผลแน่นอนว่าเป็นหน้าฟอร์มฟอร์มโดยตรง ตรรกะการประมวลผลเฉพาะในคอนโทรลเลอร์จะกล่าวถึงด้านล่าง
②รูปแบบหน้ารูปแบบ userform.jsp:
<%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8" pageencoding = "utf-8"%> <%@ taglib uri = "http://www.springframework.org/tags/form http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> สปริง MVC การจัดการ </title> </head> <body> <h2> การลงทะเบียนผู้ใช้ </h2> <mvc: form modelattribute = "user" action = " path = "name"> ชื่อ: </mvc: label> </td> <td> <mvc: input path = "name"/> </td> </tr> <tr> <td> <mvc: label path = "รหัสผ่าน"> </mvc: label> </td> <td> <td> <mvc: label path = "Job"> งาน: </mvc: label> </td> <td> <mvc: textarea path = "Job"/> </td> </tr> <tr> <td> <mvc: label path = "เกิดวันเกิด"> /> </td> </tr> <tr> <td> <mvc: label path = "เพศ"> เพศ: </mvc: label> </td> <td> <mvc: radiobuttons path = "gender" รายการ = "$ {genders}"/> </td> </td> path = "ประเทศ"> ที่อยู่อาศัย: </mvc: label> </td> <td> <mvc: เลือก path = "country" รายการ = "$ {ประเทศ}"/> </td> </tr> <tr> <td> <mvc: label = "Smoking"> /> </td> </tr> <tr> <td colspan = "2"> <อินพุตประเภท = "ส่ง" value = "ส่ง"/> </td> </tr> </tr> </table> เนื่องจากเราใส่หน้านี้ในไดเรกทอรี Web-Inf เราจึงไม่สามารถเข้าถึงไฟล์นี้ได้โดยตรงผ่าน URL "form.html" ที่กำหนดไว้ข้างต้นจะต้องถ่ายโอนไปยังคอนโทรลเลอร์สำหรับการประมวลผลและแสดงหน้ามุมมองนี้ จุดประสงค์ของสิ่งนี้คือเพื่อป้องกันไม่ให้หน้าส่วนตัวบางหน้าเข้าถึงโดยผู้อื่นโดยไม่ได้รับอนุญาต ในไฟล์ด้านบนเป็นสิ่งสำคัญที่จะต้องทราบ:
(3) คลาสคอนโทรลเลอร์ userController.java สำหรับการประมวลผลตรรกะทางธุรกิจ:
แพ็คเกจ cn.zifangsky.controller; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.modelattribute; นำเข้า org.springframework.web.bind.annotation.Requestmapping; cn.zifangsky.model.gender; นำเข้า cn.zifangsky.model.user; @controllerpublic คลาส usercontroller {สตริงสุดท้ายของเอกชน [] ประเทศ = {"จีน", "ญี่ปุ่น", "เกาหลีเหนือ", "สหรัฐอเมริกา"}; @RequestMapping (value = "/form.html") ผู้ใช้โมเดลสาธารณะและวิววิว () {modelandView modelandView = new ModelAndView ("userForm"); ModelAndView.AdDoBject ("ผู้ใช้", ผู้ใช้ใหม่ ()); ModelAndView.AdDoBject ("เพศ", Gender.values ()); ModelAndView.AdDoBject ("ประเทศ" ประเทศ); Return ModelandView; } @RequestMapping (value = "/result.html") Public ModelandView ProcessUser (@ModelAttribute (value = "ผู้ใช้") ผู้ใช้ U) {ModelAndView ModelAndView = NEW MODELANDVIEW ("USERRESULT"); ModelAndView.AdDoBject ("U", U); Return ModelandView; - จะเห็นได้ว่ามีการกำหนดสองวิธีด้านบนและฟังก์ชั่นของพวกเขาคือการถ่ายโอนไปยังรูปแบบฟอร์มจริงสำหรับคำขอ "form.html" และเพื่อจัดการกับแบบฟอร์ม เมื่อประมวลผลแบบฟอร์มฉันได้รับประเภทผู้ใช้ "U" ผ่านการเพิ่มความคิดเห็นของ @ModelAttribute ซึ่งเป็นแบบฟอร์มที่กรอกไว้ก่อนและต่อไปนี้คือการแสดงของแบบฟอร์มดังนั้นฉันจะไม่พูดมากนัก
(4) การทดสอบ:
①เติมในรูปแบบ:
②ผลลัพธ์แสดง:
userresult.jsp หน้า:
<%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8" pageencoding = "utf-8"%> <%@ taglib uri = "http://www.springframework.org/tags/form html 4.01 transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html> <head> <H2> ลงทะเบียนผลลัพธ์ </h2> <table> <ttr> <td> ชื่อ: </td> <td> $ {u.name} </td> </tr> <tr> <td> รหัสผ่าน: </td> <td> $ {U.Password} </td> </tr> <td> <td> </tr> <tr> <td> วันเกิด: </td> <td> $ {U.Birthdate} </td> </tr> <tr> <td> เพศ: </td> <td> $ {U.gender} </td> </tr> <td> <td> <td> การสูบบุหรี่: </td> <td> $ {u.smoking} </td> </tr> </tr> </table> </body>ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น