一、请求的映射路径
名称:@RequestMapping
类型:方法注解,类注解。
位置:位于SpringMVC控制器方法的上方。
作用:设置当前控制器方法请求访问路径,如果设置在类上,统一设置当前控制器方法请求访问路径前缀。
属性:value(默认):请求访问路径,或访问路径前缀。
请求方式:
get请求:前端传参数给后台,后台接收。普通参数:URL地址传参,地址参数名与形参变量名相同,定义形参即可接收参数。
Post请求:form表单post请求传参,表单参数名与形参变量名相同,定义形参即可接收参数。
post请求中文乱码,ServletContext中设置过滤器,注解在ServletContainersInitConfig类中设置
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter=new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
二、请求参数
@RequestParam
类型:形参注解
位置:SpringMVC控制器方法形参定义前面
作用:绑定请求参数与处理器形参间的关系
//普通参数:请求参数名与形参名不同时,使用@RequestParam注解关联请求参数名称与形参名称之间的关系 @RequestMapping("/commonParamDifferentName") @ResponseBody public String commonParamDifferentName(@RequestParam("name") String userName , int age){ System.out.println("普通参数传递 userName ==> "+userName); System.out.println("普通参数传递 age ==> "+age); return "{'module':'common param different name'}"; }
//集合参数:同名请求参数可以使用@RequestParam注解映射到对应名称的集合对象中作为数据 @RequestMapping("/listParam") @ResponseBody public String listParam(@RequestParam List<String> likes){ System.out.println("集合参数传递 likes ==> "+ likes); return "{'module':'list param'}"; }
POJO参数:
嵌套POJO:
数组参数:
集合参数:
正常名称对应名称,对不上@RequestParam
传递json数据(常用):
json数组:
//POJO参数:json格式 pom.xml导入json //1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc //2.使用@RequestBody注解将外部传递的json数据映射到形参的实体类对象中,要求属性名称一一对应 @RequestMapping("/pojoParamForJson") @ResponseBody public String pojoParamForJson(@RequestBody User user){ System.out.println("pojo(json)参数传递 user ==> "+user); return "{'module':'pojo for json param'}"; }
json对象(POJO):
json数组:(POJO):
@EnableWebMvc
@RequestBody用于接收json数据(常用)
三、日期类型参数传递
四、响应json数据
@ResponseBody
类型:方法注解
位置:SpringMVC控制器方法定义的上方
作用:设置当前控制器返回值作为响应体。
例如:
@RequestMapping("/toJsonPOJO") @ResponseBody public User toJsonPOJO(){ System.out.println("返回json对象数据"); User user = new User(); user.setName("itcast"); user.setAge(15); return user; }
依赖于HTTPMessageConverter接口