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;
}