手机版
你好,游客 登录 注册
背景:
阅读新闻

基于注解的Spring MVC简单介绍

[日期:2012-02-21] 来源:Linux社区  作者:haohaoxuexi [字体: ]

在RequestMapping中还可以指定一个属性method,其主要对应的值有RequestMethod.GET和RequestMethod.POST,利用该属性可以严格的控制某一方法只能被标记的请求路径对应的请求方法才能访问,如指定method的值为GET,则表示只有通过GET方式才能访问该方法,默认是都可以访问。

在SpringMVC中常用的注解还有@PathVariable,@RequestParam,@PathVariable标记在方法的参数上,利用它标记的参数可以利用请求路径传值,看下面一个例子

  1. @RequestMapping(value="/comment/{blogId}", method=RequestMethod.POST)   
  2. public void comment(Comment comment,@PathVariable int blogId, HttpSession session, HttpServletResponse response) throws IOException {   
  3.        
  4. }  

在该例子中,blogId是被@PathVariable标记为请求路径变量的,如果请求的是/blog/comment/1.do的时候就表示blogId的值为1. 同样@RequestParam也是用来给参数传值的,但是它是从头request的参数里面取值,相当于request.getParameter("参数名")方法。

在Controller的方法中,如果需要WEB元素HttpServletRequest,HttpServletResponse和HttpSession,只需要在给方法一个对应的参数,那么在访问的时候SpringMVC就会自动给其传值,但是需要注意的是在传入Session的时候如果是第一次访问系统的时候就调用session会报错,因为这个时候session还没有生成。

接下来讨论一下方法的返回值,主要有一下情况:

返回一个ModelAndView,其中Model是一个Map,里面存放的是一对对的键值对,其可以直接在页面上使用,View是一个字符串,表示的是某一个View的名称

返回一个View,也就是一个字符串,这个时候如果需要给页面传值,可以给方法一个Map参数,该Map就相当于一个Model,往该Model里面存入键值对就可以在页面上进行访问了

返回一个Model也就是一个Map,这个时候将解析默认的生成的view name。

什么也不返回,这个时候可以利用HttpServletResponse进行返回,也可以直接使用printStream进行返回

下面是一个简单的实例

  1. @RequestMapping("/{owner}/index")   
  2. public String userIndex(Map<String, Object> map,@PathVariable String owner, HttpServletRequest request) throws ParserException {   
  3.     List<DefCategory> categories = categoryService.find(owner);   
  4.     int offset = Util.getOffset(request);   
  5.     Pager<Blog> pager = blogService.find(owner, 0, offset, maxResults);   
  6.     int totalRecords = pager.getTotalRecords();   
  7.     List<Blog> blogs = pager.getData();   
  8.     Util.shortBlog(blogs);   
  9.        
  10.     List<Message> messages = messageService.find(owner, 05).getData();   
  11.     Util.shortMessage(messages, 20);   
  12.     map.put("messages", messages);   
  13.     map.put("totalRecords", totalRecords);   
  14.     List<BlogStore> stores = storeService.find(owner, 05).getData();   
  15.     map.put("maxResults", maxResults);   
  16.     map.put("blogs", blogs);   
  17.     map.put("totalRecords", totalRecords);   
  18.     map.put("owner", userService.find(owner));   
  19.     map.put("defCategories", categories);   
  20.     map.put("stores", stores);   
  21.     return "blog/userIndex";   
  22. }  
linux
相关资讯       Spring  MVC 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款