快速业务通道

使用Spring 2.5基于注解驱动的Spring MVC - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

Spring MVC 框架的易用之处在于,你可以按任意顺序定义请求处理方法的入参(除了 Errors 和 BindingResult 必须紧跟在命令对象/表单参数后面以外),Spring MVC 会根据反射机制自动将对应的对象通过入参传递给请求处理方法。这种机制让开发者完全可以不依赖 Servlet API 开发控制层的程序,当请求处理方法需要特定的对象时,仅仅需要在参数列表中声明入参即可,不需要考虑如何获取这些对象,Spring MVC 框架就象一个大管家一样“不辞辛苦”地为我们准备好了所需的一切。下面演示一下使用 SessionStatus 的例子:

清单 12. 使用 SessionStatus 控制 Session 级别的模型属性

@RequestMapping(method = RequestMethod.POST) public String processSubmit(@ModelAttribute Owner owner, BindingResult result, SessionStatus status) {//<——①   new OwnerValidator().validate(owner, result);   if (result.hasErrors()) {     return "ownerForm";   }   else {     this.clinic.storeOwner(owner);     status.setComplete();//<——②      return "redirect:owner.do?ownerId=" + owner.getId();   } }

processSubmit() 方法中的 owner 表单对象将绑定到 ModelMap 的“owner”属性中,result 参数用于存放检验 owner 结果的对象,而 status 用于控制表单处理的状态。在 ② 处,我们通过调用 status.setComplete() 方法,该 Controller 所有放在 session 级别的模型属性数据将从 session 中清空。

使用Spring 2.5基于注解驱动的Spring MVC(9)

时间:2011-01-26 IBM 陈雄华

方法返回参数

在低版本的 Spring MVC 中,请求处理方法的返回值类型都必须是 ModelAndView。而在 Spring 2.5 中,你拥有多种灵活的选择。通过下表进行说明:

请求处理方法入参的可选类型 说明
void   此时逻辑视图名由请求处理方法对应的 URL 确定,如以下的方法:

@RequestMapping("/welcome.do") public void welcomeHandler() { }

对应的逻辑视图名为“welcome”

String   此时逻辑视图名为返回的字符,如以下的方法:

@RequestMapping(method = RequestMethod.GET) public String setupForm(@RequestParam("ownerId") int ownerId, ModelMap model) {   Owner owner = this.clinic.loadOwner(ownerId);   model.addAttribute(owner);   return "ownerForm"; }

对应的逻辑视图名为“ownerForm”

org.springframework.ui.ModelMap   和返回类型为 void 一样,逻辑视图名取决于对应请求的 URL,如下面的例子:

@RequestMapping("/vets.do") public ModelMap vetsHandler() {   return new ModelMap(this.clinic.getVets()); }

对应的逻辑视图名为“vets”,返回的 ModelMap 将被作为请求对应的模型对象,可以在 JSP 视图页面中访问到。

ModelAndView 当然还可以是传统的 ModelAndView。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号