ในกระบวนการเรียนรู้ MVC ฤดูใบไม้ผลิจำเป็นต้องเข้าใจพารามิเตอร์สำคัญหลายประการก่อน:
@Controller:
คำอธิบายประกอบในชั้นเรียนคลาสนี้จะตั้งโปรแกรมคอนโทรลเลอร์และเมื่อโครงการเริ่มต้นฤดูใบไม้ผลิมันจะสแกนโดยอัตโนมัติสำหรับคลาสนี้และดำเนินการแมปการกำหนดเส้นทาง URL ที่สอดคล้องกัน
@ControllerPublic คลาส useraction {} @requestmapping
ระบุเส้นทางการแมป URL หากมีการกำหนดค่าการร้องขอการใช้งานบนคอนโทรลเลอร์วิธีการร้องขอเฉพาะจะกำหนดค่าพา ธ เส้นทางที่แมปคือการซ้อนทับของสองเส้นทาง แผนที่ที่ใช้กันทั่วไปเช่น: requestmapping ("url.html"))
กำหนดค่าเส้นทางการแมป:
@ControllerPublic คลาส useraction {@requestmapping (value = "/get_alluser.html") โมเดลสาธารณะและวิวทิว การแมปการกำหนดค่าข้างต้น
http: // ***: 8080: web1/get_alluser.html:
หากคุณเพิ่ม @RequestMapping (value = "/user") ไปยัง @Controller พา ธ แผนที่จะกลายเป็น
http: // ***: 8080: web1/user/get_alluser.html
@ResponseBody
ส่งคืนสตริงที่สอดคล้องกับวิธีการเพิ่มความคิดเห็นโดยตรง
@requestparam
แมปพารามิเตอร์ที่สอดคล้องกับ URL โดยอัตโนมัติกับค่าที่อยู่เหนือการดำเนินการและ requestparam ค่าเริ่มต้นกับพารามิเตอร์ที่ต้องการ
@PathVariable
รับพารามิเตอร์การแมป URL ของรูปแบบที่ระบุของการกำหนดค่า @requestmapping
/ * * เอาต์พุตโดยตรง html หรือ json string * เส้นทางคำขอ: * /web1/urlinfo/getcontent.html?key=rhythmk * /web1/urlinfo/getContent.json?key=rhythmk */@ResponseBody @RequestMapping คีย์สตริง, @requestparam (value = "key2", จำเป็น = false, defaultValue = "defaultValue") สตริงคีย์ 2) {system.out.println ("getContent เรียกว่า"); String result = "ส่งคืนเนื้อหาโดยตรง - คีย์:" + คีย์ + ", key2:" + key2; System.out.println (ผลลัพธ์); ผลการกลับมา; -/ * * requestmapping รองรับการกำหนดค่า URL แบบ ant-style: * เส้นทางการร้องขอ: * /urlinfo/geturlant/config.html?key=adddd */@responsebody @requestmapping (value = "/geturlant/**.html") request.getQueryString (); ผลการกลับมา; -
/ * * กำหนดค่า URL ของรูปแบบที่ระบุและแผนที่ไปยังพารามิเตอร์ที่สอดคล้องกัน * เส้นทางการร้องขอ: /web1/urlinfo/geturlparam/12_123.html * */@requestmapping (value = "/geturlparam/ {menuid) @PathVariable ("menuid") string menuid) {modelandview mode = new modelandView (showmsg); mode.addobject ("msg", "Get id:" + id + ", menuid:" + menuid); โหมดส่งคืน; - /** ได้รับคำขอโพสต์เท่านั้น*/@ResponseBody @RequestMapping (value = "/posturl.html", method = requestMethod.post) สตริงสาธารณะ urlmethod (@requestparam id id) {return "เฉพาะการร้องขอโพสต์, รหัสที่ได้รับ:" + id; - / * * เขียนคุกกี้ * */@requestmapping ("/writeCookies.html") โมเดลสาธารณะและวิวัฒนาการ writecookies (@requestparam ค่าสตริง, การตอบกลับ httpservletResponse) {response.addcookie (คุกกี้ใหม่ ("คีย์"); ModelAndView Mode = NEW MODELANDVIEW (showMSG); mode.addobject ("msg", "คุกกี้เขียนสำเร็จ"); โหมดส่งคืน; - / * * รับค่าคีย์ที่สอดคล้องกันผ่าน @cookieViveUe * */@requestmapping ("/getCookies.html") โมเดลสาธารณะและวิวทิวทัศน์ getCookie (@CookIeViAlue ("คีย์") สตริง CookValue) {ModelAndView Mode = ModelAndView ใหม่ (showMSG); mode.addobject ("msg", "cookies =" + cookvalue); โหมดส่งคืน; - / * * ส่ง Servlet API เป็นพารามิเตอร์ใน * คุณสามารถใช้ httpservletResponse โดยตรงในการดำเนินการ httpservletrequest * */@requestmapping ("/servlet.html") สตริงสาธารณะ servlet1 ModelAndView Mode = new ModelAndView (); mode.addobject ("msg", "result =" + result.toString ()); ส่งคืน showmsg; - / * * อินสแตนซ์วัตถุตามพารามิเตอร์ที่ส่งผ่านใน URL * * ตัวอย่างเช่น: http://127.0.0.1:8080/web1/urlinfo/getobject.html?userid=1&username=ad * */@requestmapping ("getobject.html") ID: " + user.getUserId (). toString () +", ชื่อผู้ใช้: " + user.getUserName (). toString (); ModelAndView Mode = NEW MODELANDVIEW (showMSG); mode.addobject ("msg", "result =" + result.toString ()); โหมดส่งคืน; - ใช้ Page Jump:
/ * * ใช้หน้ากระโดด * /web1/urlinfo/redirectpage.html * */@requestmapping ("/redirectpage.html") สตริงสาธารณะ redirectpage () {return "redirect: getCookies.html? r = 10"; - กลับ JSON โดยตรง
URL ที่ร้องขอจะต้องสิ้นสุดใน. json มิฉะนั้นข้อยกเว้น
ไม่สามารถโหลดทรัพยากรได้: เซิร์ฟเวอร์ตอบกลับด้วยสถานะ 406 (ไม่ยอมรับ): ทรัพยากรที่ระบุโดยคำขอนี้มีความสามารถในการสร้างการตอบสนองที่มีลักษณะที่ไม่ยอมรับตามคำขอ "ยอมรับ" ส่วนหัว ()
return entity:
@jonserialize (รวม = jonserialize.inclusion.non_null) คลาสสาธารณะ userInfo {ผู้ใช้จำนวนเต็มส่วนตัว; Public Integer GetUserId () {return userId; } โมฆะสาธารณะ setUserId (จำนวนเต็ม USERID) {userId = userId; } สตริงสาธารณะ getUserName () {ส่งคืนชื่อผู้ใช้; } โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {ชื่อผู้ใช้ = ชื่อผู้ใช้; } ชื่อผู้ใช้สตริงส่วนตัว; -กลับมาดำเนินการ
@ResponseBody @RequestMapping ("/getUser.json") Public UserInfo GetUser () {System.out.println ("GetUser"); userInfo model = ใหม่ userInfo (); model.setUserId (100); model.setUsername ("Wang Kun"); โมเดลกลับ; - ถาม:
/web1/urlinfo/getuser.json
เอาท์พุท:
{"userId": 100, "ชื่อผู้ใช้": "Wang Kun"}ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น