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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值