springMVC的注解详解

来源:互联网 发布:穿越火线开挂软件 编辑:程序博客网 时间:2024/06/06 03:32

使用springMVC框架首先需要学习一下springmvc的注解,下面是总结的几个常用的注解,仅供参考。
1.@RequestBody
  注解的作用就是将页面上传入给controller的json格式字符串自动转换成java对象,
  要求json的key必须等于接收的对象的属性名称

2.@ResponseBody
  注解会自动将返回的java对象转换成json格式字符串
   例如:@RequestBody将页面传入的json格式字符串转成java对象,
   @ResponseBody又将java对象转化为json格式字符串。结果就是输出json字符串
  @RequestMapping(“/sendJson”)
  @ResponseBody
   public Item sendJson(@RequestBody Item item) throws Exception{
        System.out.println(item);
       return item;
}
3.@RequestBody和@ResponseBody的区别
  @RequestBody将页面传入的json格式字符串转成java对象,@ResponseBody又将java对象转化为json格式字符串

@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用;在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。@RequestBody 注解则是将 HTTP 请求正文插入方法中,将请求体写入某个对象

4.@requestMapping
  a) 使用在controller的方法上: 标记url到请求方法的映射(就是通过url能找到指定的这个方法)
  b) 窄化请求映射: 就是用在controller类上,防止你起的名称和别人之间的重名.
  c) 限制请求类型:
   请求类型有: get, post, put, delete, option等
   @RequestMapping(value=”/list”, method=RequestMethod.GET )
   public ModelAndView listA() throws Exception{}

5.@RequestParam
  使用@RequestParam常用于处理简单类型的绑定。
  value:参数名字,即传入参的请求参数名字,如value=“item_id”表示请求的参数区中的名字为item_id的参数的值将传入;
  required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报;
     HTTP Status 400 - Required Integer parameter ‘XXXX’ is not present
  defaultValue:默认值,表示如果请求中没有同名参数时的默认值
  例如:
  public String editItem(@RequestParam(value=”item_id”,required=true) String id) {

  }
  形参名称为id,但是这里使用value=” item_id”限定请求的参数名为item_id,所以页面传递参数的名必须为item_id。
  注意:如果请求参数中没有item_id将抛出异常:
  HTTP Status 500 - Required Integer parameter ‘item_id’ is not present
  这里通过required=true限定item_id参数为必需传递,如果不传递则报400错误,可以使用defaultvalue设置默认值,即使        required=true也可以不传item_id参数值

6.@PathVariable
  @RequestMapping(value=”/ viewItems/{id}”):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在  方法中使用@PathVariable获取{×××}中的×××变量。
  @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。
  @RequestMapping(“/viewItems/{id}”)
   public @ResponseBody viewItems(@PathVariable(“id”) String id,        Model model) throws Exception{}
     //方法中使用@PathVariable获取id的值
     //调用 service查询商品信息
      ItemsCustom itemsCustom = itemsService.findItemsById(id);
     return itemsCustom;
   }

7.@RequestParam和@PathVariable区别
  在springMVC中,两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同。
  使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值
  使用@PathVariable时,URL是这样的:http://host:port/path/参数值