Una breve introducción a los siete módulos principales del marco de resorte
Explicación detallada del código del módulo MVC en primavera
El módulo web de Spring se utiliza para integrar marcos web, como Struts1, Struts2, JSF, etc.
Integre Struts1
Método de herencia
El marco de Spring proporciona la clase de acciones de acciones para admitir la acción de Struts1. Después de heredar acciones, puede obtener la Factory Bean de Spring, obteniendo así varios recursos en varios contenedores de primavera.
importar org.springframework.web.struts.actionsupport; Catacción de clase pública extiende ActionSupport {public iCatservice getCarservice () {return (icatservice) getWebApplicationContext (). GetBean ("CatService"); } Public ActionForward Execute (ActionMappingMapping, ActionForm Form, HttpServletRequest Solicitud, httpServletResponseSponse) {catform catform = (catform) form; if ("list" .equals (catform.getAction ())) {returnThis.list (mapeo, formulario, solicitud, respuesta); }} Public ActionForward List (ActionMappingMapping, ActionForm Form, HttpServletRequest Solicitud, httpServletResponseSponse) {catform catform = (catform) form; ICatservice CatService = getCatservice (); Lista <Cat> CatList = CatService.ListCats (); request.setAttribute ("Carlist", CatList); return mapping.find ("List"); }}Configuración de resorte en Web.xml
<cuette-Param> <!-Ubicación del archivo de configuración de Spring-> <amamname> contextConfigLocation </amamname> <amam-value> /web-inf/classes/applicationContext.xml </param-value> </ context-param> <Oyeer> <!-Cargando el archivo de configuración de Spring Usando el oyente-> <search-class> org.springframework.web.context.contextloaderListener </searer-class> </oyeyer> <silter> <!-Uso del filtro de caracteres propio de Spring-> <filter-name> caracteresCodingFilter </filter-name> <filter-class> org.springfframework.web.filter.characteriCterencodingFilter </filtro> <filter> org.springfframework.web.filter.characteriCterencodingfilter <//filtro> <filter> org.springfframeWork <amamname> codificación </amamname> <amam-value> utf-8 </am-value> </it-param> <initparam> <initparam> <amamname-name> forceEncoding </param-name> <amam-value> true </param-value> </it-param> </filter> <filter> <filter-name> carácter> filtrado </param-value> </it-param> </filter> <ferry-mapping> <filter-name> carácter> filtrado </param-value> </it-param> </silfre> <filter> <filter-name> carácter> <Url-Pattern>/*</url-Pattern> </filt-mapping>
Si se usa junto con Hibernate, debe agregar un filtro OpenSessionInviewFilter en Web.xml para expandir el alcance de la sesión a la capa JSP para evitar que se arrojen excepciones de carga retrasadas
<Tilter> <Sterry-Name> HibernateFilter </filter-Name> <Slast-Class> org.springframework.orm.Hibernate3.Support. OpenSessionInViewFilter </filter-class> </filter> <filter-mapping> <filter-name> hibernateFilter </filter-name> <url-pattern>*. Do </url-pattern> <!-Action para Struts 1-> </filtre-mapping> <
Método de agente
La integración del método de herencia en la primavera es muy simple, pero la desventaja es que el código se combina con la primavera, y la acción no se entrega a Spring para la administración, por lo que no se pueden usar las características de AOP y COI de Spring. El uso del método proxy puede evitar estos defectos.
Catacción de clase pública extiende la acción {// La acción privada Icatservice Catservice heredada aquí es Catservice; // setter y getter ligeramente público ActionForward Execute (ActionMappingMapping, ActionForm Form, HttpServletRequest Solicitud, httpServletResponsponse) {Catform CatForm = (CatForm) Form; if ("list" .equals (catform.getAction ())) {returnThis.list (mapeo, formulario, solicitud, respuesta); }} Public ActionForward List (ActionMappingMapping, ActionForm Form, HttpServletRequest Solicitud, httpServletResponsponse) {catform catform = (catform) form; ICatservice CatService = getCatservice (); Lista <Cat> CatList = CatService.ListCats (); request.setAttribute ("Carlist", CatList); return mapping.find ("List"); }}Esta acción no se combina con la primavera, sino que solo define una propiedad iCatservice, que luego es inyectada por la primavera
configuración de struts-congfig.xml
<Form-Beans> <Form-Bean name = "Catform" type = "com.clf.spring.catform"> </form-beans> <Action-Mappings> <Action name = "catform" path = "/cat" type = "com.clf.spring.cataction"> <reenviar name = "list" path = "/jsp/list.jsp"> </////////Action> </Actation La mayoría de la configuración central, que entrega la acción de los puntales al agente de Spring-> <Controller ProcessOrClass = "org.springframework.web.struts.delegatingRequestProcessor" /> <!-Después de que la configuración del controlador entra en vigencia, se usa la propiedad de la acción. Struts no utilizará la clase especificada por la propiedad Tipo para crear una catacción, sino buscar en la configuración de resorte. Por lo tanto, la catacción debe configurarse en Spring-> <!-La acción en Spring usa la propiedad de nombre en lugar de ID. Spring interceptará la solicitud "/cat.do", inyectará CatService en la catacción a través del método Setter y llame al método Execute () -> <bean name = "/cat"> <Property Name = "Catservice" ref = "CatService"/> </bean>
La configuración de Web.xml es la misma que el método de herencia anterior.
El uso de la acción del método proxy puede configurar las características de Spring como interceptores, como la configuración de la catacción antes y después del método de los interceptores después de
<bean id = "catbeboreinterceptor"> <propiedad name = "consejo"> <bean/> </propine> <propiedad name = "mappedName" value = "*"> </property> </bean> <bean id = "catafterinterceptore"> <propiedad name = "consejo"> <bean/> </propiedad> <propers name = "mappedName" valor = "*"> </</</name> </beay </"Property> <name =" mappedName "Value ="*"> </Property <</" ASCANSE " <Property name = "Interceptornames"> <list> <value> Catbebeforeinterceptor </value> <value> Catafterinterceptore </value> </list> </property> <Property Name = "Target"> <Bean> <Property Name = "CatService" Ref = "Catservice"> </property> </ Bean> </propiéTer> </ bean> </spersiS> </bean> Ref = "Catservice"> </Property> </ Bean> </propiéTer> </ bean> </Property> </Bean>
Integre Struts 2
Spring Integra Struts 2 requiere Struts2-Spring-2.011.Jar Package
CATACCIÓN DE CLASE PÚBLICA {ICATSERVICE PRIVADO CATSERVICE; gato privado gato; // setter y getter public string list () {CatService.ListCats (); devolver "lista"; } public String add () {CatService.CreateCat (Cat); Lista de retorno (); }}configuración de struts.xml
Además de la configuración normal, también debe agregar una constante con nombre Struts.ObjectFactory y establecer el valor para que resorte para indicar que la acción se genera por Spring. Luego cambie el atributo de clase de <Action/> a Cataction, Struts2 buscará un bean llamado Catacción en primavera.
<constant name = "struts.ObjectFactory" value = "spring"/> <packagenamePackageName = "cat" extends = "struts-default"> <Action name = "*_ cat" método = "{1}"> <param name = "Action"> {1}} </param> <sult> /list.jsp </resultado> <resultado n. </paquete>Configuración de resorte
<bean id = "cataccion" scope = "prototype"> <propiedad name = "catservice" ref = "catservice"> </property> </bean>
configuración web.xml
<cuette-Param> <!-Ubicación del archivo de configuración de Spring-> <amamname> contextConfigLocation </amamname> <amam-value> /web-inf/classes/applicationContext.xml </param-value> </ context-param> <Oyeer> <!-Cargando el archivo de configuración de Spring Usando el oyente-> <search-class> org.springframework.web.context.contextLoaderListener </oyearer-class> </oyer> <filter> <filter-name> struts2 </filtre-name> <filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class> </filter> <filter-mapping> <filter-name> struts2 </filtre-name> <Url-Pattern>/*</url-Pattern> </filt-mapping>
Resumir
Lo anterior es toda la explicación detallada de la configuración del módulo web de 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.
referirse a:
Una breve discusión sobre el problema de salto de la página en SpringMVC
Spring AOP Introducción Demo Compartir
Spring Framework Proyecto web Código práctico para compartir