领略spring 3.x 时代spring mvc

领略spring 3.x 时代spring mvc

ID:20632174

大小:25.00 KB

页数:6页

时间:2018-10-14

领略spring 3.x 时代spring mvc_第1页
领略spring 3.x 时代spring mvc_第2页
领略spring 3.x 时代spring mvc_第3页
领略spring 3.x 时代spring mvc_第4页
领略spring 3.x 时代spring mvc_第5页
资源描述:

《领略spring 3.x 时代spring mvc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、鼎鼎大名的Spring框架3.0版在12月5日由其作者之一——JuergenHoeller先生在博客里宣告问世,并命为里程碑版,给Spring粉丝们带来了震撼的快感。笔者即开“快车”拉了两个包回来,遗憾的是参考文档至今还没有出来(仅有API文档),这为学习Spring3.0带来了非常大的困难,但没有阻挡笔者对新产品的兴趣。Spring之父RodJohnson先生早在2003年就预言EJB将死(观点颇具争议),攻击EJB之臃肿是在虐待程序员。然而EJB3.0出来后几乎宣判Spring死刑,但自2.0版以后Spring火爆程度已经超过EJB,两者的争斗至今仍不停息,这也是

2、Spring3.0连文档还没有整理出来就匆匆推出的原因。当然,Spring与EJB有很多各自独特优势之处,例如EJB的分布式运算、标准规范,Spring的IoC、AOP切面编程、偶合集成、MVC等等,取各自之长在企业中应用如虎添翼。Spring目前已经加入了J2EE规范,J2EE世界将更加精彩......或许是用腻了Struts1那死板的WEB框架,才对SpringMVC爱不释手,尤其是2.5版本以后,支持全注解配置方式,已经使很久没有再写过xml文件了。3.0版是完全兼容2.5,因此了解2.5版的@MVC则更容易接受。正如ArjenPoutsma小伙子在他的博客里说

3、的那样,3.0时代将集中致力于表述性状态转移(REST,希望我没有翻译错,金山词霸翻译为“休息”)的网络服务和更容易的网络编程。的确增加了更多的控制器类型,并增强了SOAP/WSDL/WS这些基于分布式体系结构。先回忆下2.5注解方式的@MVC,来一个示例:@ControllerpublicclassArticleController{@RequestMapping("/articleView")publicStringgetArticle(@RequestParam("id")Stringid,HttpServletRequestrequest){request.s

4、etAttribute("article",service.find(Article.class,id));return"articleView";}}ArticleController没有实现任何接口,是一个最普通不过的pojo,如果浏览器来了articleView.do?id=xxx这个请求,Spring会找到getArticle()这个方法,该方法第一个参数绑定到了URL上的请求参数,第二个是J2EE标准的request对象(可见SpringMVC是非侵入式的,不像变态的Struts2),事实上还可以给定HttpServletResponse,ModelMap,

5、甚至自己的类型,Spring都会为你将值传入进来。通过一个逻辑层service组件根据id参数值去底层查找Article对象,并放入request作用域中,最后返回的是面页视图名,这个例子中是返回到articleView.jsp中。上例再变通下:@ControllerpublicclassArticleController{@RequestMapping("/articleView_*")publicStringgetArticle(HttpServletRequestrequest){Stringid=StringUtil.getParam(request.getR

6、equestURI(),"articleView_*");request.setAttribute("article",service.find(Article.class,id));return"articleView";}}对于articleView_aaa.do,articleView_bbbb.do,articleView_c5h8j2.do,articleView_xxx.do,这样的请求都会由getArticle()这个方法来应付,是不是很有意思?Spring3.0增加了一个@PathVariable注解来支持可变的请求路径,将上面的代码在3.0版中再变通

7、下:@ControllerpublicclassArticleController{@RequestMapping("/articleView/${id}")//可以接受articleView/aaa.do,articleView/xxx.do...publicStringgetArticle(@PathVariableStringid,HttpServletRequestrequest){request.setAttribute("article",service.find(Article.class,id));return"articleView

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。