$.ajax({
url : ly.getWebRootPath() + "/userController/edit";,
data : rowData,
dataType : "json",
a.以上没写type默认为type=“GET”
b.rowData为json对象{"username":"u","password":"p"}
c.由于上述是get方式所以请求会是userController/add?username=u&password=p,(ps;在chrome-Network查看Headers--Query String Parameters
d.后台直接如下封装进入参user
@RequestMapping("/add")
@ResponseBody
public Json add(User user){})
2.post方式封装多个参数 包括分页
$.ajax({
url : /usrController/getAllUsers,
data : $("#form").serialize(),//此处用的是序列化字符串
type : "POST",
a.前台
b.后台如下 getAllUsers所有入参都会一一与与a前端截图中的Form Data数据匹配
(比如有一个username:"name" ,第一个入参user有方法setUsername则会set进去,同时第三个入参username刚好是RequestParam("username"),
那么第三入参也赋值,)
/**
*
* @param page 分页参数
* @param user 实体参数 -- @ModelAttribute---userListSearch对应前台Form表单ID
* getAllUsers(Page page, @ModelAttribute(ID)User user)
* getAllUsers(Page page, User user,@RequestParam(value="username",required=false)String username)
* @return
*/
@RequestMapping("/getAllUsers")
@ResponseBody
public Map<String, Object> getAllUsers(Page page, User user,@RequestParam(value="username",required=false)String username) {
System.out.println(page);
3.post方式(@RequestBody接受List对象)
前台:
$.ajax({
url : ly.getWebRootPath() + "/userController/delete",
data : JSON.stringify(rowDatas),
type : "POST",
dataType : "json",
contentType : "application/json;charset=utf-8",
a.type为post
b.data一定要转出json对象的字符串形式
c.指定contentType为json格式便于后台消费
后台:
@RequestMapping(value = "/delete", method = {RequestMethod.POST}, consumes = "application/json")
@ResponseBody
public Json delete(@RequestBody List<User> users) throws UserException {
a.@RequestMapping用 consumes = "application/json"接收消费前台json对象字符串
b.入参用@RequestBody

本文详细介绍了SpringMVC中Controller如何处理AJAX请求的参数,包括GET方式下对象参数转化为URL查询字符串,POST方式下通过序列化字符串匹配实体类属性,以及使用@RequestBody接收List对象的方法。内容涵盖了不同请求类型的数据传递方式和后台入参的匹配规则。
358

被折叠的 条评论
为什么被折叠?



