主要用于在SpringMvc框架的控制层获取参数,三个常用参数:defaultValue表示设置默认值,required 通过boolean设置是否是必须要传入的参数,value值表示传入的参数名称。
@RequestBody
接收请求体中传递给后端的Json字符串数据的,GET方式无请求体,所以使用@RequestBody接收数据时,不能使用GET方式提交数据,需要用POST方式进行提交。
@ResponseBody
该注解用于方法的返回对象,可以通过配置转换器为指定数据响应格式,如果希望返回的数据不是View试图页面,而是指定数据格式的时候使用,例如:Json、Xml等。
@Autowired
按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。
@Resource
按照ByName自动注入,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。
@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
四、常见参数映射 1、普通映射 @RequestMapping("/getSum") public Integer getSum (int a,int b){ return a+b ; }测试:
:6003/getSum?a=1&b=2
传参名称和方法参数保持一致。
2、指定参数名 @RequestMapping("/getInfo") public String getInfo (@RequestParam("name") String var1, @RequestParam("say") String var2){ return var1+":"+var2 ; }测试:
:6003/getInfo?name=cica&say=hello
传参名和 @RequestParam 指定的参数名要对应。
3、数组参数 @GetMapping("/getArray") public String getArray (String[] ids){ return ids[0]+"-"+ids[1] ; }测试:
:6003/getArray?ids=2&ids=3
传递并解析数组类型的参数格式。
4、Map参数 @RequestMapping("/getMap") public String getMap (@RequestParam Map<String,String> paramMap){ return paramMap.get("name") ; }测试:
:6003/getCityEntity?province=浙江&name=杭州
这里以Post方式将相关参数传递CityEntity实体对象中。
5、包装参数 @PostMapping("/getCityEntity") public CityEntity getCityEntity (CityEntity cityEntity){ return cityEntity ; }测试:
:6003/getCityEntity?province=浙江&name=杭州
这里以Post方式将相关参数传递CityEntity实体对象中。
6、Rest风格参数 @GetMapping("/getId/{id}") public String getId (@PathVariable("id") Integer id){ return "id="+id ; }测试:
:6003/getId/1
RestFul 风格参数映射。
五、源代码地址 GitHub·地址 https://github.com/cicadasmile/spring-mvc-parent GitEE·地址 https://gitee.com/cicadasmile/spring-mvc-parent