spring mvc在和前端交互过程中,最重要的任务之一就是和前端交互,交互过程中我们不可避免的需要接受用户在前端需要传递给后端的参数,那我们总结一下各种接受前端参数的方式
1:通过前端URL地址栏中的参数接受(restful风格接收主要用到)
/**
* 通过路径接受
*
* @param name
* @return
* @throws Exception
*/
@RequestMapping(value = "/sayHello1/{name}", method = RequestMethod.GET)
@ResponseBody
public String sayHello1(@PathVariable("name") String name) throws Exception {
return "hello boot" + name;
}
2:通过@RequestParam方式接收(如果能保证传递过来的参数名和后端接收参数名一直的话,可以省略该注解)
/**
* 通过@RequestParam 接受参数
*
* @param name
* @return
* @throws Exception
*/
@RequestMapping(value = "/sayHello2", method = RequestMethod.GET)
@ResponseBody
public String sayHello2(@RequestParam("name") String name) throws Exception {
return "hello boot" + name;
}
3:接受前端传递过来的数组类型(例如批量删除用户等操作)
/**
* 接受数组类型
*
* @param intArr
* @param strArr
* @return
*/
@GetMapping(value = "/requestArray")
@ResponseBody
public Map requestArray(int[] usersId, String[] usersName) {
Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("usersId", usersId);
paramsMap.put("usersName", usersName);
return paramsMap;
}
4:通过@RequestBody注解得到JSON参数(现在前后端分离的开发方式越来越多,前端经常会传递JSON格式给后台)
/**
* @param user
* 通过@RequestBody注解得到JSON参数
* @return 用户信息
*/
@PostMapping("/insert")
@ResponseBody
public InfoUser insert(@RequestBody InfoUser user) {
// userService.insertUser(user);
return user;
}
5:接受Date类型和自定义数值类型
// 获取提交参数
@PostMapping("/format/date")
@ResponseBody
public Map<String, Object> format(Date date,
@NumberFormat(pattern = "#,###.##") Double number) {
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("date", date);
dataMap.put("number", number);
return dataMap;
}
//@DateTimeFormat(iso= DateTimeFormat.ISO.DATE 控制日期格式