El controlador de SpringMVC se utiliza para manejar las solicitudes de los usuarios. Los controladores son equivalentes a la acción en Struts1. Su mecanismo de implementación y principios operativos son similares.
El controlador es una interfaz, que generalmente hereda directamente el AbstrCatController e implementa el método HandLerequestInternal. El método HandLerequestinternal es equivalente al método de ejecución de Struts1
importar org.springframework.web.servlet.modelandview; import org.springframework.web.servlet.mvc.abstractController; public class CatController extiende AbstractController {privado iCatservice Catservice; // Setter y obteniendo modelos ligeros y modelos y modelos HandLerequestInternal (httpservletRequestRequest, httpServletResponse Respuesta) lanza la excepción {String Action = request.getParameter ("Action"); if ("list" .equals (action)) {return this.list (request, respuesta);}} protegido modelandView list (httpserveTrequestRequest, httpSesponsesServeServeReServeRes Excepción {List <Cat> CatList = CatService.ListCat (); request.setAttribute ("CatList", CatList); devuelve nuevo ModelAndView ("Cat/ListCat");}}SpringMVC no tiene encapsulación de datos incorporada, los desarrolladores pueden encapsular el código de conversión de datos ellos mismos
SpringMVC es único en el procesamiento de la capa de vista. HandlerequestInternal Devuelve un objeto ModelAndView, que puede considerarse como encapsulación de los objetos JSP. ModelAndiview acepta directamente la ruta a la página JSP. Por ejemplo, el parámetro "Cat/ListCat" es solo una parte de la ruta JSP. La ruta completa real es "Web-INF/JSP/CAT/CATLIST.JSP". La parte antes y después de la ruta se configura en el archivo de configuración.
Además de configurar las rutas JSP, ModelAndView también puede pasar directamente los objetos de modelo a la capa de vista sin ponerlos de antemano en la solicitud, como NewModelandView ("Cat/ListCat", "Cat", Cat). Si se pasan múltiples parámetros, puede usar MAP, como
Mapa map = newhashmap (); map.put ("gato", gato); map.put ("CatList", CatList); devolver nuevo ModelAndView ("Cat/ListCat", MAP);En general, se utiliza un archivo XML independiente como Spring-Action.xml para configurar específicamente los componentes relacionados con la web.
<? xml versión = "1.0" encoding = "utf-8"?> <! dctypeBeans public "-// spring // dtd bean // en" "http://www.springframework.org/dtd/spring-beans.dtd"> <behuels> <bean id = "ViewResolver"> <name de propiedad = "" n. <value>/web-inf/jsp/</value> <!-jsp prefix-> </property> <propiedad name = "sufix"> <value> .jsp </valor> <!-jsp sufix-> </property> <!-Configuración de la mapeo de url-> <bean id = "urlMapping"> <name de propiedad = "mappes"> <props> <! Controlador-Url Url se configura "CAT.MVC"-> <prop key = "cat.mvc"> CatController </prop> <props> </property> </bean> <bean id = "CatController"> <Property Name = "CatService" Ref = "Catservice"> </propers> </bean> </ Beans> Web.xml Configuración <context-Param> <!-Ubicación de la ubicación de la velocidad de la primavera. <Amam-name> contextConfigLocation </param-name> <param-value> /web-inf/classes/applicationContext.xml, /web-inf/classes/spring-action.xml </param-value> </context-param> <searcher> <!-Cargando el archivo de configuración de primavera usando el oyente-> <search-class> org.springframework.web.context.contextloaderListener </searer-class> </oyeyer> <ervlet> <!-Spring Distributor-> <Servlet-name> Spring </Servlet-Name> <Servlet-Class> Org.springFrame.web.servlet.iscatcherservlet </servlet-class> <itineram> <Amam-name> contextConfigLocation </param-name> <param-value> /web-inf/classes/spring-action.xml </amam-value> </init-param> <load-on-startup> 1 </load-on-startup> <!-Cargando al inicio-> </servlet> <ervlet-mapping> <ervlet--name> spring </servletplet> <! <URL>*. MVC </url> </servlet mapping>
Si un controlador desea manejar múltiples empresas de la lógica, puede usar MultiActionController, que es equivalente a la acción de despacho en Struts 1. Puede distribuir diferentes solicitudes a diferentes métodos de acuerdo con cierto parámetro.
importar org.springframework.web.servlet.mvc.multiAction.multiActionController; public class CatController extiende AbstractController {private iCatservice catService; // setter y getter ligeramente protegido modelandview add (htttpServletRequestRequestRespest, httpServletRessesponse Respuesta). ModelandView ("cat/addCat");} Lista de modelandview protegida (httpservletRequestRequest, httpServletResponse Respuesta) lanza la excepción {list <cat> catlist = catservice.listCat (); request.setTribute ("CatList", Catlist); return NewNVIEPConfigurar en Spring-Action.xml
<bean id = "paramethodresolver"> <propiedad name = "paramname"> <value> Action </value> <!-Configurar parámetros de distribución-> </propiety> <Property name = "DefaultMethodName"> <value> list </valor> <!-Configurar métodos de ejecución predeterminados-> </bean> <bean id = "urlhandlermappesping"> <sperty name = "mapspspspspsps> <propers> Key = "Cat.MVC"> CatController </prop> <!-Acceder a "Cat.mvc" "se entregará a CatController para procesar-> <proping key =" catmulti.mvc "> catmulticontroller </prop> <!-al acceder a" catmulti.mvc ", dejará que él lo hará como catmulter para procesar para procesar para procesar para procesar para procesar </bean> <bean id = "CatController"> <Property Name = "Catservice" ref = "CatService"> </property> </ Bean> <Bean ID = "CatMultiController"> <Property Name = "CatService" Ref = "Catservice"> </Property> <//////> <///> <///> </rem .>
Resumir
Lo anterior es toda la explicación detallada del código del módulo MVC en Spring, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo.