springmvc controller入參Object與前臺ajax傳送注意項
$.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