在项目中使用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;
	}

  

posted on 2016-03-15 10:44  雕琰琢玉  阅读(3920)  评论(0编辑  收藏  举报