คอนโทรลเลอร์ของ SpringMVC ใช้เพื่อจัดการคำขอของผู้ใช้ ตัวควบคุมเทียบเท่ากับการกระทำใน struts1 กลไกการใช้งานและหลักการดำเนินงานของพวกเขามีความคล้ายคลึงกัน
คอนโทรลเลอร์เป็นอินเทอร์เฟซซึ่งโดยทั่วไปจะสืบทอดโดยตรง abstrcatcontroller และใช้วิธี handlerequestinternal วิธีการ handlerequestinternal เทียบเท่ากับวิธีการดำเนินการของ struts1
นำเข้า org.springframework.web.servlet.modelandview; นำเข้า org.springframework.web.servlet.mvc.abstractcontroller; catcontroller ระดับสาธารณะขยายบทคัดย่อ handlerequestinternal (httpservletrequestrequest, httpservletResponse การตอบสนอง) โยนข้อยกเว้น {สตริงแอ็คชั่น = request.getParameter ("การกระทำ"); ถ้า ("รายการ" .Equals (การกระทำ)) {ส่งคืนนี้ ข้อยกเว้น {list <at> catlist = catservice.listcat (); request.setAttribute ("catlist", catlist); return modelandview ใหม่ ("cat/listcat");}}SpringMVC ไม่มีการห่อหุ้มข้อมูลในตัวนักพัฒนาสามารถห่อหุ้มรหัสการแปลงข้อมูลได้ด้วยตนเอง
SpringMVC มีความพิเศษในการประมวลผลของเลเยอร์มุมมอง Handlerequestinternal ส่งคืนวัตถุ ModelAndView ซึ่งถือได้ว่าเป็นการห่อหุ้มวัตถุ JSP ModelAndiview รับเส้นทางไปยังหน้า JSP โดยตรง ตัวอย่างเช่นพารามิเตอร์ "cat/listcat" เป็นเพียงส่วนหนึ่งของเส้นทาง JSP เส้นทางที่สมบูรณ์จริงคือ "web-inf/jsp/cat/catlist.jsp" ชิ้นส่วนก่อนและหลังเส้นทางได้รับการกำหนดค่าในไฟล์การกำหนดค่า
นอกเหนือจากการตั้งค่าเส้นทาง JSP แล้ว ModelandView ยังสามารถส่งผ่านวัตถุโมเดลไปยังเลเยอร์มุมมองโดยตรงโดยไม่ต้องใส่ในคำขอล่วงหน้าเช่น NewModelandView ("Cat/ListCat", "CAT", CAT) หากผ่านพารามิเตอร์หลายตัวคุณสามารถใช้แผนที่ได้เช่น
แผนที่แผนที่ = NewHashMap (); map.put ("cat", cat); map.put ("catlist", catlist); ส่งคืน ModelandView ใหม่ ("cat/listcat", แผนที่);โดยทั่วไปไฟล์ XML อิสระเช่น Spring-Action.xml ใช้เพื่อกำหนดค่าส่วนประกอบที่เกี่ยวข้องกับเว็บโดยเฉพาะ
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! dctypebeans สาธารณะ "-// Spring // dtd Bean // en" "http://www.springframework.org/dtd/spring-beans.dtd" <value>/web-inf/jsp/</value> <!-คำนำหน้า jsp-> </คุณสมบัติ> <property name = "Suffix"> <value> .jsp </value> <!-คำต่อท้าย jsp-> </property> <! "cat.mvc"-> <prop key = "cat.mvc"> catcontroller </prop> <props> </property> </epean> <bean id = "catcontroller"> <property name = "catservice" ref = "catservice"> </property> <param-name> contextconfiglocation </param-name> <param-value> /web-inf/classes/applicationContext.xml, /web-inf/classes/spring-action.xml </param-value> </context-param> org.springframework.web.context.contextloaderlistener </listener-class> </listener> <servlet> <!-ผู้จัดจำหน่ายสปริง-> <servlet-name> ฤดูใบไม้ผลิ </servlet-name> <param-name> contextconfiglocation </param-name> <param-value> /web-inf/classes/spring-action.xml </param-value> </init-param> <load-on-startup> 1 </load-on-startup> <url>*. mvc </url> </servlet-mapping>
หากคอนโทรลเลอร์ต้องการจัดการตรรกะทางธุรกิจหลายอย่างคุณสามารถใช้ MultiactionController ซึ่งเทียบเท่ากับการจัดส่งใน struts 1 มันสามารถแจกจ่ายคำขอที่แตกต่างกันไปยังวิธีการที่แตกต่างกันตามพารามิเตอร์ที่แน่นอน
นำเข้า org.springframework.web.servlet.mvc.multiaction.multiactioncontroller; catcontroller ระดับสาธารณะขยายบทคัดย่อ ambstractcontroller {ส่วนตัว Icatservice catservice; // setter ModelAndView ("cat/addcat");} รายการ modelandview ที่ได้รับการป้องกัน (httpservletrequestrequest, การตอบสนอง httpservletResponse) โยนข้อยกเว้น {รายการ <at> catlist = catservice.listcat ()กำหนดค่าเป็น Spring-action.xml
<bean id = "paramethodresolver"> <property name = "paramname"> <dange> การกระทำ </value> <!-กำหนดค่าพารามิเตอร์การแจกแจง-> </คุณสมบัติ> <property name = "defaultMethodname"> <dange> รายการ </alues> <! <props> <prop key = "cat.mvc"> catcontroller </prop> <!-การเข้าถึง "cat.mvc" "จะถูกส่งมอบให้กับ catcontroller สำหรับการประมวลผล-> <prop key =" catmulti.mvc "catmultoller <props> </property> </ebean> <bean id = "catcontroller"> <property name = "catservice" ref = "catservice"> </property> </epean> <bean id = "catmulticontroller">
สรุป
ข้างต้นเป็นคำอธิบายโดยละเอียดทั้งหมดของรหัสโมดูล MVC ในฤดูใบไม้ผลิฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น