天天看點

Ajax調用SpringMVC ModelAndView 無傳回情況

  在項目中使用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