在項目中使用Ajax的時候,success中傳回的data一直都是null,也沒有報錯。在确定Ajax文法沒有錯誤,也沒有牽扯跨域問題後,用排除法挨着删除代碼,發現是因為Spring MVC會自動把方法中參數(User user)封裝進modelMap 中友善傳回頁面中調用。因為Ajax需要傳回json資料,而User中有自身關聯情況,無法自動轉換json,而且錯誤資訊被吃掉了。最後發現隻需要使用modelMap.addAttribute("user", null);即可避免無法自動轉換json的問題。
@RequestMapping(value = "save", method = RequestMethod.POST)
public ModelAndView saveUser(User user, ModelMap modelMap) {
//...對于User user的一些操作省略,因為User類中的一些屬性導緻無法轉換Json,modelMap.addAttribute("user", null);将modelMap中的user清空。
Map<String, String> newUser = new HashMap<>();
newUser.put("id", "" + user.getId());
newUser.put("name", user.getFirstName() + " " + user.getLastName());
modelMap.put("newUser", newUser);
modelMap.addAttribute("user", null);
ModelAndView mav = new ModelAndView();
MappingJacksonJsonView view = new MappingJacksonJsonView();
view.setAttributesMap(modelMap);
mav.setView(view);
return mav;
}
轉載于:https://www.cnblogs.com/diaoyan/p/5278428.html