springmvc controller入参Object与前台ajax发送注意项

来源:互联网 发布:8291端口攻击 编辑:程序博客网 时间:2024/05/20 05:29
1.get方式
$.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



0 0
原创粉丝点击