Spring之WEB模块配置详解
Spring框架七大模块简单介绍
Spring中MVC模块代码详解
Spring的WEB模块用于整合Web框架,例如Struts1、Struts2、JSF等
整合Struts1
继承方式
Spring框架提供了ActionSupport类支持Struts1的Action。继承了ActionSupport后就能获取Spring的BeanFactory,从而获得各种Spring容器内的各种资源
importorg.springframework.web.struts.ActionSupport; publicclassCatActionextendsActionSupport{ publicICatServicegetCarService(){ return(ICatService)getWebApplicationContext().getBean("catService"); } publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ CatFormcatForm=(CatForm)form; if("list".equals(catForm.getAction())){ returnthis.list(mapping,form,request,response); } } publicActionForwardlist(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ CatFormcatForm=(CatForm)form; ICatServicecatService=getCatService(); ListcatList=catService.listCats(); request.setAttribute("carList",catList); returnmapping.find("list"); } }
Spring在web.xml中的配置
contextConfigLocation /WEB-INF/classes/applicationContext.xml org.springframework.web.context.ContextLoaderListener CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true CharacterEncodingFilter /*
如果与Hibernate结合使用,需要在web.xml中添加OpenSessionInViewFilter过滤器,将session范围扩大到JSP层,防止抛出延迟加载异常
hibernateFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter hibernateFilter *.do
代理方式
继承方式融入Spring非常简单,但是缺点是代码与Spring发生了耦合,并且Action并没有交给Spring管理,因此不能使用Spring的AOP、IoC特性,使用代理方式则可以避免这些缺陷
publicclassCatActionextendsAction{//此处继承的Struts1的Action privateICatServicecatService; //setter、getter略 publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ CatFormcatForm=(CatForm)form; if("list".equals(catForm.getAction())){ returnthis.list(mapping,form,request,response); } } publicActionForwardlist(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ CatFormcatForm=(CatForm)form; ICatServicecatService=getCatService(); ListcatList=catService.listCats(); request.setAttribute("carList",catList); returnmapping.find("list"); } }
这个Action没有与Spring发生耦合,只是定义了一个ICatService属性,然后由Spring负责注入
struts-congfig.xml配置
web.xml的配置与上面的继承方式相同
使用代理方式的Action可以配置拦截器等Spring特性,例如给CatAction配置方法前拦截器和返回后拦截器
catBeforeInterceptor catAfterInterceptor
整合Struts2
Spring整合Struts2需要struts2-spring-2.011.jar包
publicclassCatAction{ privateICatServicecatService; privateCatcat; //setter、getter略 publicStringlist(){ catService.listCats(); return"list"; } publicStringadd(){ catService.createCat(cat); returnlist(); } }
struts.xml配置
除了正常的配置之外,还需要
{1} /list.jsp /list.jsp
Spring配置
web.xml配置
contextConfigLocation /WEB-INF/classes/applicationContext.xml org.springframework.web.context.ContextLoaderListener Struts2 org.apache.struts2.dispatcher.FilterDispatcher Struts2 /*
总结
以上就是本文关于Spring之WEB模块配置详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。
参考:
浅谈Springmvc中的页面跳转问题
SpringAOP入门Demo分享
Spring框架web项目实战全代码分享