Краткое введение в семь основных модулей весенней структуры
Подробное объяснение кода модуля MVC весной
Веб -модуль Spring используется для интеграции веб -структур, таких как Struts1, Struts2, JSF и т. Д.
Интегрировать стойки1
Метод наследования
Spring Framework предоставляет класс ActionSupport для поддержки действий Struts1. После наследства действий, вы можете получить Spring Beanfactory, тем самым получая различные ресурсы в различных весенних контейнерах.
импорт org.springframework.web.struts.actionsupport; открытый класс CATACTION EXTED ACTIONSUPPORT {public Icatservice getCarservice () {return (icatservice) getWebApplicationContext (). getBean ("catservice"); } public ActionForward Execute (ActionMappingMapping, Form form, httpservlectrequest, httpservletresponsestonsesponse) {catform catform = (catform) form; if ("list" .equals (catform.getAction ())) {returnThis.list (mapping, form, request, response); }} public ActionForward List (ActionMappingMapping, форма ActionForm, httpservletrequest, httpservletresponsestonsesponse) {catform catform = (catform) form; Icatservice catservice = getCatservice (); Список <TAT> catlist = catservice.listcats (); request.setattribute ("carlist", catlist); return mapping.find ("list"); }}Конфигурация пружины в web.xml
<context-param> <!-Расположение файла конфигурации пружины-> <param-aname> contextConfiglocation </param-Ame> <value> /web-inf/classes/applicationcontext.xml </param-value> </context-param> <slieder> <! org.springframework.web.context.contextloaderListener </uliderer> </слушать> <Filter> <!-Использование собственного фильтра символов Spring-> <Filter-name> HarternencodingFilter </filter-name> <filter-class> org.sprimeworkwork.web.filter.characterencerengending> org.springframework. <param-name> кодирование </param-name> <param-value> utf-8 </param-value> </init-param> <init-param> <init-param> <param-name> forceEncoding </param-name> <-param-value> true-name-name-name-name-name-name-name-name-name> <Url-pattern>/*</url-pattern> </filter-mapping>
При использовании в сочетании с Hibernate, вам необходимо добавить фильтр OpenSessionInViewFilter в web.xml, чтобы расширить сессию с сеансом на уровень JSP, чтобы предотвратить задержку исключения нагрузки.
<filter> <filter-name> hibernatefilter </filter-name> <filter-class> org.springframework.orm.hibernate3.support. OpenSessionInViewFilter </filter-class> </filter> <Filter-Mapping> <Filter-name> hibernateFilter </filter-name> <url-pattern>*. Do </url-pattern> <!-Включите действие для стойки 1-> </filter-картирование>
Метод агента
Интеграция метода наследования в пружину очень проста, но недостаток состоит в том, что код сочетается с пружиной, и действие не передается пружине для управления, поэтому функции Spring AOP и IOC не могут быть использованы. Использование прокси -метода может избежать этих дефектов.
Общедоступный класс Cataction расширяет действие {// action private icatservice catservice унаследован здесь, это Catservice; // setter и getter слегка публично ActionForward Execute (ActionMappingMapping, форма ActionForm, httpservletRequest, httpservletresponsponse) {catform catform = (catform) форма; if ("list" .equals (catform.getAction ())) {returnThis.list (mapping, form, request, response); }} public ActionForward List (ActionMappingMapping, форма Actionform, httpservletrequest, httpservletresponsponse) {catform catform = (catform) form; Icatservice catservice = getCatservice (); Список <TAT> catlist = catservice.listcats (); request.setattribute ("carlist", catlist); return mapping.find ("list"); }}Это действие не сочетается с пружиной, а просто определяет свойство Icatservice, которое затем вводится пружиной
Конфигурация struts-congfig.xml
<bome-beans> <form-bean name = "catform" type = "com.clf.spring.catform"> </form-beans> <mappings> <закните name = "catform" path = "/cat" type = "com.clf.spring.cataction"> <forward name = "list"/jsp/listcat.jsp "> <//active> <//action actions> </! Конфигурация, которая передает действие стойки к агенту Spring-> <Controller ProcessorClass = "org.springframework.web.struts.delegatingRequestProcessor" /> <!-После вступления в силу конфигурации контроллера используется свойство действия. Спорты не будут использовать класс, указанный свойством типа для создания Catction, но поиск в конфигурации пружины. Следовательно, CATCACTION должна быть настроена в пружине-> <!-Действие в пружине использует свойство имени вместо идентификатора. Spring будет перехватывать запрос «/cat.do», введите Catservice в Cataction с помощью метода сеттера и вызовите метод execute () -> <bean name = "/cat"> <name = "catservice" ref = "catservice"/> </bean>
Конфигурация web.xml совпадает с методом наследования выше.
Использование действия метода прокси -сервера может настроить пружинные функции, такие как перехватчики, такие как настройка CATCACTION до и после перехватчиков после метода
<bean id = "catbeforeInterceptor"> <name = "insile"> <bean/> </property> <name = "mapedname" value = "*"> </property> </bean> <bean id = "catafterinterceptor"> <property name = "Совет"> <bean/> </propetion> <propatore = "maped" name="/cat"> <property name="interceptorNames"> <list> <value> catBeforeInterceptor</value> <value> catAfterInterceptor</value> </list> </property> <property name="target"> <bean> <property name="catService" ref="catService"></property> </bean> </property> </bean> </property> </bean>
Интегрируйте стойки 2
Spring интегрирует стойки 2 требует Struts2-Spring-2.011.jar Package
открытый класс Cataction {Private Icatservice Catservice; частный кот; // setter and getter public String list () {catservice.listcats (); вернуть "список"; } public String add () {catservice.createCat (cat); return List (); }}Конфигурация struts.xml
В дополнение к обычной конфигурации, вам также необходимо добавить постоянный с именем struts.objectfactory и установить значение на пружину, чтобы указать, что действие генерируется пружиной. Затем измените атрибут класса <Action/> Cataction, Struts2 будет искать бобов с именем Cataction весной.
<constant name = "struts.objectfactory" value = "spring"/> <packagenamePackageName = "cat" extends = "struts-default"> <name = "*_ cat" method = "{1}"> <param name = "action"> {1} </param> <sesult>/illist.jsp </result> <suld> <sult> <sult> <sult> vise "/result. </package>Конфигурация пружины
<bean id = "cataction" scope = "prototype"> <name = "catservice" ref = "catservice"> </property> </bean>
Конфигурация web.xml
<context-param> <!-Расположение файла конфигурации пружины-> <param-aname> contextConfiglocation </param-Ame> <value> /web-inf/classes/applicationcontext.xml </param-value> </context-param> <slieder> <! org.springframework.web.context.contextloaderListerener </uliderer> </alinger> <filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class> </filter> <filter-mapping> <pilter-name-name> <pilter> <bilter-name> <pilter> <pilter> <pilter> <bilter-name> <pilter> <pilter> <bilter-name> <Url-pattern>/*</url-pattern> </filter-mapping>
Суммировать
Выше приведено подробное объяснение конфигурации веб -модуля Spring, я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это.
См.
Краткое обсуждение проблемы прыжка страницы в Springmvc
Spring AOP введение демо -демо -обмен
Spring Framework Web Project Практическое обмен кодом