การพัฒนาคำอธิบายประกอบ MVC หมายถึงการพัฒนาชั้นเรียนตามคำอธิบายประกอบ สำหรับโปรเซสเซอร์ที่กำหนดแต่ละตัวไม่จำเป็นต้องลงทะเบียนใน XML
การลงทะเบียนเสร็จสมบูรณ์โดยเพียงแค่เรียนรู้เกี่ยวกับคลาสและวิธีการในรหัส
กำหนดโปรเซสเซอร์
@Controller: คลาสปัจจุบันเป็นโปรเซสเซอร์
@RequestMapping: วิธีการปัจจุบันเป็นวิธีการประมวลผลชื่อวิธีการเป็นไปตามอำเภอใจและคำขอจะถูกประมวลผลและตอบสนอง
@Controller คลาสสาธารณะ MyController {@requestMapping (value = "/hello.do") โมเดลสาธารณะและวิวทิวทัศน์ docontrol (คำขอ httpservletRequest, การตอบสนอง httpservletResponse) {modelandview mv = modelandview ใหม่ (); mv.addobject ("ข้อความ", "วิธีการดำเนินการ"); mv.setViewName ("ยินดีต้อนรับนีล!"); กลับ MV; - สามารถ จำกัด การร้องขอได้เช่น
คัดลอกรหัสดังต่อไปนี้: @requestMapping (value = "/hello.do", params = {"name = neil", "! age"}, method = requestMethod.post)
Method = requestMethod.post Limited ประเภทการส่งไปที่โพสต์
params = {"name = neil", "! age"} ชื่อพารามิเตอร์จะต้องดำเนินการในคำขอที่ จำกัด ค่าคือ Neil และอายุพารามิเตอร์ไม่สามารถดำเนินการได้
ยอมรับพารามิเตอร์คำขอ
หากชื่อพารามิเตอร์ในคำขอเหมือนกับชื่อพารามิเตอร์ของวิธีโปรเซสเซอร์ก็สามารถรับได้โดยตรง
@RequestMapping (value = "/hello.do") public modelandview docontroll (ชื่อสตริงอายุ int) {system.out.println ("ชื่อ:" + ชื่อ + ", อายุ:" + อายุ); ModelAndView MV = new ModelAndView (); กลับ MV; -หากชื่อพารามิเตอร์ไม่สอดคล้องกันคุณจะต้องค้นหาผ่าน @requestparam
@requestparam มีสามคุณสมบัติ
การคัดลอกรหัสมีดังนี้: docontroll (@requestparam (name = "username") ชื่อสตริง @requestparam (name = "userage") อายุ int)
ตัวแปรพา ธ @PathVariable
พารามิเตอร์ในวิธีการประมวลผลอาจมาจากพารามิเตอร์ที่ดำเนินการโดยคำขอหรือจากตัวแปรใน URI นั่นคือตัวแปรเส้นทาง
เช่นเดียวกับพารามิเตอร์ปกติที่กล่าวถึงข้างต้นหากชื่อตัวแปรพา ธ ไม่สอดคล้องกับชื่อพารามิเตอร์ที่ได้รับค่าของมันคุณต้องระบุชื่อตัวแปรพา ธ ผ่านพารามิเตอร์
ดังที่แสดงไว้ด้านล่างบันทึกชื่อผู้ใช้และชื่ออายุและอายุ
@RequestMapping (value = "/{username}/{age} /hello.do") โมเดลสาธารณะและดู docontroll (@PathVariable ("ชื่อผู้ใช้") ชื่อสตริง @RequestParam อายุ int) {system.out.println ("ชื่อ" + ชื่อ " ModelAndView MV = new ModelAndView (); กลับ MV; -วิธีโปรเซสเซอร์ส่งคืนค่า
โปรเซสเซอร์ที่ใช้กันทั่วไปสี่ตัวต่อไปนี้ที่มีคำอธิบายประกอบ @Controller คือ:
1 กลับไปที่ ModelandView
หลังจากวิธีการประมวลผลเสร็จสิ้นจะต้องข้ามไปยังทรัพยากรอื่น ๆ และส่งข้อมูลระหว่างทรัพยากรที่ถูกเปลี่ยนเส้นทางจากนั้นส่งคืน ModelandView
Public ModelandView DocOntroll () {ModelAndView ModelAndView = new ModelAndView (); // ตัวแบบข้อมูลที่ผ่านมาและวิวทิวทัศน์ ("ชื่อ", "neil"); ModelAndView.SetViewName ("/user.do"); Return ModelandView; -2 กลับไปเป็นโมฆะ
หลังจากดำเนินการตามคำขอแล้วไม่จำเป็นต้องกระโดดและโปรเซสเซอร์สามารถนำกลับไปเป็นโมฆะได้เช่นการตอบสนองการร้องขอ Ajax แบบอะซิงโครนัส
หากคุณต้องการกระโดดคุณยังสามารถใช้ servletapi เพื่อ sendretirect หรือส่งต่อ
3, ส่งคืนวัตถุ
โปรเซสเซอร์สามารถส่งคืนวัตถุวัตถุซึ่งไม่ปรากฏเป็นมุมมองเชิงตรรกะ แต่ใช้เพื่อแสดงข้อมูลโดยตรงบนหน้า
การส่งคืนวัตถุวัตถุคุณต้องใช้คำอธิบายประกอบ @ResponseBody เพื่อนำข้อมูล JSON ที่แปลงลงในน้ำหนักการตอบกลับ
@RequestMapping (value = "/hello.do") @ResponseBody โมเดลสาธารณะและ VIEW DOCONTROLL () {ส่งคืนนักเรียนใหม่ ("Neil", 998); - ส่วนหน้าได้รับข้อมูล
fr.ajax ({url: "hello.do", เสร็จสมบูรณ์: ฟังก์ชั่น (data) {Alert (data.name + "" + data.age);}})ในทำนองเดียวกันคุณสามารถส่งคืนรายการคอลเลกชันแผนที่ ฯลฯ
@RequestMapping (value = "/hello.do") @ResponseBody Public ModelandView DocOntroll () {list <student> list = new ArrayList <Tudent> (); list.add (นักเรียนใหม่ ("a", 11)); list.add (นักเรียนใหม่ ("B", 22)); list.add (นักเรียนใหม่ ("C", 33)); รายการคืน; - fr.ajax ({url: "hello.do", เสร็จสมบูรณ์: ฟังก์ชั่น (data) {$ (data) .each (ฟังก์ชั่น (ดัชนี)) {แจ้งเตือน (ข้อมูล [ดัชนี] .name + data [ดัชนี] .age);}}})4 กลับไปที่สตริง
อาจมีสามสถานการณ์สำหรับการคืนสตริง:
ชื่อมุมมองเชิงตรรกะ
สตริงที่ส่งคืนโดยโปรเซสเซอร์สามารถระบุชื่อมุมมองเชิงตรรกะและแปลงเป็นที่อยู่มุมมองทางกายภาพผ่านความละเอียดของตัวแยกวิเคราะห์มุมมอง
เส้นทางการเข้าถึงจริงสุดท้าย = "คำนำหน้า" + ชื่อมุมมองเชิงตรรกะ + "คำต่อท้าย"
หากคุณไม่ได้ระบุ pre-suffix คุณสามารถส่งคืนชื่อมุมมองทางกายภาพได้โดยตรงเช่น
ส่งคืน "/web-inf/admin/welcome.jsp"
เปลี่ยนเส้นทางเปลี่ยนเส้นทาง
return "Redirect: /admin/next.action";
มันเทียบเท่ากับการตอบสนอง Sendredirect () หลังจากส่งต่อแถบที่อยู่ของเบราว์เซอร์จะกลายเป็นที่อยู่ที่ส่งต่อ
เนื่องจากมีการริเริ่มคำขอใหม่พารามิเตอร์ดั้งเดิมจึงไม่สามารถส่งผ่านไปยัง URL ถัดไปได้เมื่อทำการส่งต่อ
หากคุณต้องการผ่านพารามิเตอร์คุณสามารถประกบพารามิเตอร์หลังจาก URL & A = 1 & B = 2
ส่งต่อการส่งต่อ
กลับ "ส่งต่อ: /admin/forward.action";
มันเทียบเท่ากับ request.getRequestDispatcher () ส่งต่อ (คำขอ, การตอบกลับ) หลังจากส่งต่อแถบที่อยู่เบราว์เซอร์ยังคงเป็นที่อยู่เดิม
การส่งต่อไม่ได้ดำเนินการตามคำขอและการตอบกลับใหม่ แต่แบ่งปันคำขอและการตอบกลับกับคำขอก่อนส่งต่อ
พารามิเตอร์สามารถนำกลับมาใช้ซ้ำได้โดยตรงก่อนส่งต่อ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น