PrintWriter輸出json對象到ajax回調函數!
需求 在一個複雜表單處理頁面中,我們填寫完用戶信息後點擊提交按鈕,添加用戶信息成功後根據用戶id填寫用戶拼桌信息。如果此時我們提交用戶信息時後臺拋出了異常信息,springmvc提供的方式要麼是返回頁面,要麼是返回一個封裝的json對象。此時我們並不像因爲填錯了某個字段而跳轉到錯誤頁面,此時怎麼辦呢,如何才能搬到出錯了只要前端alert一個信息提示用戶,成功了再跳轉頁面。
解決
step1: 調用
if (userPoJo == null) {
resultVo.setIsSuccess(HANDLE_FAILED);
resultVo.setIsOverdue(HANDLE_SUCCESS);
resultVo.setMessage("未檢索到拼桌發起人信息");
return writeExcInfo(response, JSONObject.toJSONString(resultVo));
}
step2:處理
/**
* @Description (TODO 將異常以json格式返回到前端,可以在ajax的回調中獲取到 )
* @param response
* @param exceptInfo
* @return
*/
protected ModelAndView writeExcInfo(HttpServletResponse response, String exceptInfo){
response.setCharacterEncoding("utf-8");
try {
PrintWriter writer = response.getWriter();
writer.write(exceptInfo);
writer.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}