Uma breve introdução aos sete principais módulos da estrutura da primavera
Explicação detalhada do código do módulo MVC na primavera
O módulo da Web da Spring é usado para integrar estruturas da web, como STRUTS1, STRUTS2, JSF, etc.
Integrar struts1
Método de herança
A estrutura da primavera fornece a classe ActionSupport para apoiar a ação do Struts1. Após o herdador da ação, você pode obter o Beanfactory da Spring, obtendo assim vários recursos em vários contêineres da primavera.
importar org.springframework.web.struts.actionsupport; classe pública Catactação estende o ACTIONSupport {public icatService getcarService () {return (icatService) getWebApplicationContext (). getBean ("CatService"); } public ActionForward Execute (ActionMappingMapping, Formulário de Ação, solicitação HTTPSERVletRequest, httpServLePronsSponsSesponse) {CatForm Catform = (Catform) Form; if ("list" .equals (catform.getAction ())) {returnThis.List (mapeamento, formulário, solicitação, resposta); }} Lista pública de ação (ActionMappingMapping, Formulário de Ação, Solicitação HttpServletRequest, HttpServLePSesponsSesponse) {Catform Catform = (Catform) Form; ICATSERVICE CATSERVICE = getCatService (); List <at> catlist = CatService.listcats (); request.setattribute ("carlist", catlist); return mapping.find ("list"); }}Configuração da primavera em web.xml
<! org.springframework.web.context.ContextLoaderListener </lister-class> </ouvinte> <filter> <!-usando o próprio filtro de caracteres de Spring-> <filter-name> caracterencodingfilter </filter-name> <filtro-class> org.springframework.webfilter.filter.character> <filter-class> org.springFramework.web.filter.filter.character> <amam-name> codificação </param-name> <amam-value> utf-8 </param-value> </irit-param> <oti init-paparam> <itir--param> <amam-name> forcencoding </param-name> <ampare-value> true </param-value> </init-paparam> <filter> <milter> <milter-miltue> </param-value> </init-Param> <fletster> <milter> <milter> <milter-melue> true </param-value> </init-paparam> <filter> <filter> <milter> <milter-value> true </param-value> </init-paparam> <filter> <filter> <url-pattern>/*</url-tattern> </filter-Mapping>
Se usado em conjunto com o Hibernate, você precisa adicionar um filtro OpenSessionInviewFilter no web.xml para expandir o escopo da sessão para a camada JSP para impedir que exceções de carregamento tardio sejam jogadas
<filter> <filter-name> hibernatefilter </filter-name> <filter-Class> org.springframework.orm.hibernate3.support. OpenSessionInViewFilter </filter-Class> </ftruter> <filter-Mapping> <filter-name> hibernatefilter </ftrhter-name> <url-pattern>*. Do </url-tattern> <!-Ativar ação para struts 1-> </filter-mapping>
Método do agente
A integração do método de herança na primavera é muito simples, mas a desvantagem é que o código é acoplado à primavera e a ação não é entregue à primavera para o gerenciamento, para que os recursos AOP e IOC da primavera não possam ser usados. O uso do método proxy pode evitar esses defeitos.
Cattação da classe pública Estende a ação {// A ação Private ICATSERVICE CATSERVICE herdado aqui é CatService; // setter e getter ligeiramente public ActionForward Execute (ActionMappingMapping, ActionForm Form, HttpServletRequest Solicy, httpServletResponsponse) {Catform Catform = (Catform); if ("list" .equals (catform.getAction ())) {returnThis.List (mapeamento, formulário, solicitação, resposta); }} Lista de ação pública (ActionMappingMapping, formulário de ação, solicitação httpServletRequest, httpServleTRESPOnsponse) {Catform Catform = (catform) formulário; ICATSERVICE CATSERVICE = getCatService (); List <at> catlist = CatService.listcats (); request.setattribute ("carlist", catlist); return mapping.find ("list"); }}Esta ação não é acoplada à primavera, mas apenas define uma propriedade ICATSERVICE, que é então injetada pela primavera
Configuração do Struts-congfig.xml
<form-beans> <form-bean name = "catform" type = "com.clf.spring.catform"> </form-beans> <action-mappings> <ação name = "catform" path = "/cat" type = "com.clf.spring.cataction"> <names name = "" = "/"/jsp/listcat.jsp "> Configuração, que entrega a ação dos suportes para o agente da primavera-> <Controller ProcessorClass = "org.springframework.web.struts.delegatingRequestProcessor" /> <!-Após a configuração do controlador, o tipo de propriedade da ação é usado. Os struts não usarão a classe especificada pela propriedade Type para criar uma catactação, mas pesquise na configuração da primavera. Portanto, a catactação deve ser configurada na primavera-> <!-A ação na primavera usa a propriedade Name em vez de id. A primavera interceptará a solicitação "/cat.do", injetará o CatService na catactação através do método do setter e ligue para o método Execute () -> <bean name = "/cat"> <names name = "CatService" ref = "CatService"/> </ Bean>
A configuração do web.xml é a mesma que o método de herança acima.
O uso da ação do método proxy pode configurar recursos de mola, como interceptores, como configurar a cattação antes e depois dos interceptores após o método
<bean id = "catbeforeInterceptor"> <propriedade name = "conselhos"> <bean/> </property> <propriedade name = "mapedname" value = "*"> </property> </bean> <bean id = "catafterIntercetor"> name = "conselhos"> <bean/</</propriedade </) name = "/cat"> <propriedade name = "interceptornames"> <lista> <Value> CatBeforeInterceptor </value> <Value> catafterIntercept </value> </list> </oilter> <names name = "Target"> </bean> <Nome da propriedade = "CATSERVICE" Ref = "CatService"> </Property> </bean>
Integre struts 2
Spring Integra Struts 2 Requer Struts2-Spring-2.011.Jar Pacote
Catalidade de classe pública {private ICATSERVICE CATSERVICE; gato particular gato; // setter e getter public string list () {CatService.listcats (); retornar "lista"; } public string add () {CatService.CreateCat (CAT); Lista de retorno (); }}configuração de struts.xml
Além da configuração normal, você também precisa adicionar um struts de nome constante. Em seguida, altere o atributo de classe de <Action/> para a Catactação, o Struts2 procurará uma catactação de feijão na primavera.
<constant name=" struts.objectFactory" value="spring" /> <packagenamepackagename="cat" extends="struts-default"> <action name="*_cat" method="{1}"> <param name="action" >{1}</param> <result>/list.jsp</result> <result name="list">/list.jsp</result> </action> </package>Configuração da primavera
<bean id = "catacaction" scope = "prototype"> <propriedade name = "catservice" ref = "catservice"> </propriedade> </bean>
Web.xml Configuração
<! org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <filter> <filter-name>Struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name> Struts2</filter-name> <url-pattern>/*</url-tattern> </filter-Mapping>
Resumir
O exposto acima é toda a explicação detalhada da configuração do módulo da Web da Spring, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la.
Consulte:
Uma breve discussão sobre o problema de salto de página em Springmvc
Compartilhamento de demonstração de introdução da Spring AOP
Compartilhamento de Código Prático do Projeto Web Spring Framework