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'))獲得返回的錯誤消息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章