Controller SpringMVC digunakan untuk menangani permintaan pengguna. Pengontrol setara dengan tindakan di Struts1. Mekanisme implementasi dan prinsip operasi mereka serupa.
Controller adalah antarmuka, yang umumnya secara langsung mewarisi abstrcatcontroller dan mengimplementasikan metode handleRequestinternal. Metode Handlerequestinternal setara dengan metode pelaksanaan Struts1
import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractController;public class CatController extends AbstractController{private ICatService catService;//setter and getter slightly protected ModelAndView handleRequestInternal(HttpServletRequestrequest,HttpServletResponse response) throws Exception{String action =request.getParameter("action");if("list".equals(action)){return this.list(request,response);}}protected ModelAndView list(HttpServletRequestrequest,HttpServletResponse response) Lempar Pengecualian {Daftar <Cat> catlist = catservice.listcat (); request.setAttribute ("catlist", catlist); return new ModelAndView ("cat/listcat");}}SpringMVC tidak memiliki enkapsulasi data bawaan, pengembang dapat merangkum kode konversi data itu sendiri
SpringMVC unik dalam pemrosesan lapisan tampilan. Handlerequestinternal Mengembalikan objek ModelandView, yang dapat dianggap sebagai enkapsulasi objek JSP. Modelandiview secara langsung menerima jalur ke halaman JSP. Misalnya, parameter "kucing/listcat" hanyalah bagian dari jalur JSP. Jalur lengkap yang sebenarnya adalah "Web-INF/JSP/CAT/CATLIST.JSP". Bagian sebelum dan sesudah jalur dikonfigurasi dalam file konfigurasi.
Selain menyiapkan jalur JSP, ModelAndView juga dapat secara langsung meneruskan objek model ke lapisan tampilan tanpa menempatkannya dalam permintaan terlebih dahulu, seperti NewModelandView ("Cat/ListCat", "Cat", Cat). Jika beberapa parameter dilewatkan, Anda dapat menggunakan peta, seperti
Peta peta = newhashmap (); peta.put ("kucing", kucing); Map.put ("Distist", Daftar Katol); return new ModelAndView ("Cat/ListCat", peta);Secara umum, file XML independen seperti spring-action.xml digunakan untuk secara khusus mengonfigurasi komponen yang berhubungan dengan web.
<? XML Versi = "1.0" encoding = "UTF-8"?> <! DctypeBeans publik "-// Spring // dtd bean // en" "http://www.springframework.org/dtd/spring-beans.dtd"> <bean> <bean id iD = " <value>/WEB-INF/jsp/</value><!-- JSP prefix--> </property> <property name="suffix"> <value>.jsp</value> <!-- JSP suffix--> </property> <!--Configuration URL Mapping--> <bean id="urlHandlerMapping"> <property name="mappings"> <props><!-Controller URL will be configured as "Cat.mvc"-> <prop key = "cat.mvc"> catcontroller </prop> <sops> </prop Property> </ bean> <bean id = "catcontroller"> <name properti = "CatService" Ref = "CatService"> </propure> </bean> </bean> Web.xm Catservice "> </propure> </bean> </bean> Web.xm <param-name> ContextConfigLocation </param-name> <param-value> /web-inf/classes/applicationContext.xml, /web-inf/classses/spring-action.xml </param-value> </context-param> <listener> <!-memuat file konfigurasi musim semi> listener> </context-param> <sengands> <! org.springframework.web.context.contextLoaderListener </listener-class> </engeaner> <servlet> <!-distributor spring-> <servlet-name> Spring </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServ </org. <param-name> ContextConfigLocation </param-name> <param-value> /web-inf/classes/spring-action.xml </param-value> </init-param> <load-on-startup> 1 </loid-on-startup> <! <rerl>*. Mvc </ruml> </servlet-Mapping>
Jika seorang pengontrol ingin menangani beberapa logika bisnis, Anda dapat menggunakan multiactionController, yang setara dengan pengiriman di Struts 1. Ini dapat mendistribusikan permintaan yang berbeda ke metode yang berbeda sesuai dengan parameter tertentu.
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;public class CatController extends AbstractController{private ICatService catService;//setter and getter slightly protected ModelAndView add(HttpServletRequestrequest,HttpServletResponse response) throws Exception{... return new ModelAndView ("Cat/AddCat");} Daftar ModelDView yang Dilindungi (HttpServletRequestRequest, HttpservletResponse Response) melempar pengecualian {List <Cat> catlist = CatService.ListCat (); request.setAttribute ("CatList", Catlist); returner (); ListCat "; ListCat (" CatList ", Catlist); return);Konfigurasikan ke spring-action.xml
<bean id = "paramethodresolver"> <name properti = "paramname"> <value> action </ value> <!-Mengkonfigurasi parameter distribusi-> </property> <name properti = "DefaultMethodName"> </nilai "" Metode Eksekusi Default-> </Property> </Bean> </value = "Metode Eksekusi Default-> </properti> </bean> </value = =" Metode Eksekusi Default-</Property> </Bean> </bean "" Metode Eksekusi Default-</properti> </bean> </bean "" Metode Eksekusi Default- <Props> <prop key = "cat.mvc"> catcontroller </prop> <!-mengakses "cat.mvc" "akan diserahkan kepada CatController untuk diproses-> <prop key =" catmulti.mvc "> CATMULTROLLER </prop> <!-saat mengakses" CATMULTICE. <Props> </property> </ bean> <bean id = "catcontroller"> <properti name = "catservice" ref = "catservice"> </propert> </ bean> <bean id = "catmulticontroller"> <properti = "catservice" ref = "catservice"> </property> </propert
Meringkaskan
Di atas adalah semua penjelasan terperinci dari kode modul MVC di musim semi, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya.