springmvc 返回 json

一般都是用注解@responsebody 

但是若方法返回类型限制为ModelAndView时就要这样写了


import org.springframework.web.servlet.view.json.MappingJackson2JsonView;

  public ModelAndView resolveException(HttpServletRequest request,  
	            HttpServletResponse response, Object object, Exception exception) {  
	ModelAndView mav = new ModelAndView();
	MappingJackson2JsonView view = new MappingJackson2JsonView();
	Map attributes = new HashMap();
	attributes.put("success", Boolean.TRUE);
	attributes.put("contractNo", "contractNo");
	view.setAttributesMap(attributes);
	mav.setView(view);
	return mav;
}

这样写是可以通过的,以后在研究原理,先记下。

返回错误

public ModelAndView resolveException(HttpServletRequest request,  
            HttpServletResponse response, Object object, Exception exception) {  
        //是否为ajax请求  
        String requestType = request.getHeader("X-Requested-With");  
         if(exception instanceof AuthorizationException){  
            response.setStatus(413);//无权限异常  主要用于ajax请求返回  
            response.addHeader("Error-Json", "{\"code\":413,\"msg\":\"nopermission\"}");  
            response.setContentType("text/html;charset=utf-8");  
            if("XMLHttpRequest".equals(requestType)){  
                return new ModelAndView();  
            }  
            return new ModelAndView("redirect:/html/413.html");  
        }  
        return null;  
    }
}  

这里返回http错误码和错误信息Error-Json在responseHeader里,在前端js可以使用getResponseHeader('Error-Json'))获得返回的错误消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值