首页 > 代码库 > springmvc 注解

springmvc 注解

1 @PathVariable的作用

 

@RequestMapping(value="http://www.mamicode.com/form/{id}/apply",method={RequestMethod.PUT,

RequestMethod.POT)  

 

    {id}在这个请求的URL里就是个变量,可以使用@PathVariable来获取

 @PathVariable@RequestParam的区别就在于:@RequestParam用来获得静态的URL   请求参数;@PathVariable用来获得动态的URL请求入参

 

 

 

2、@RequestParam, @RequestBody

 

@RequestParam 

A) 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( String--> 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get 方式中queryString的值,也可以处理post方式中 body data的值;

B)用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GETPOST

 

C) 该注解有两个属性: valuerequired; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;

示例代码:

 

@Controller  

@RequestMapping("/pets")  

@SessionAttributes("pet")  

public class EditPetForm {  

    @RequestMapping(method = RequestMethod.GET)  

 public String setupForm(@RequestParam("petId") int petId, ModelMap model) {  

       Pet pet = this.clinic.loadPet(petId);  

   model.addAttribute("pet", pet);  

   return "petForm";  

   }  

@RequestBody

 

该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;

 

它是通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。

 

因为配置有FormHttpMessageConverter,所以也可以用来处理 application/x-www-form-urlencoded的内容,处理完的结果放在一个MultiValueMap<String, String>里,这种情况在某些特殊需求下使用,详情查看FormHttpMessageConverter api;

springmvc 注解