**不同的业务逻辑需要返回不同的结果,特别是
通过ajax请求的情况**
情况一:直接跳转到某个页面;
- 成功跳转到成功页面
- 异常或失败跳转到特定错误页面
- 返回值类型:ModelAndView
- 用到的注解:
- @Controller
- @ResponseBody
- ModelAndView.setViewName(“页面url”);
- ModelAndView.addObject(“result”, object);
情况二:不跳转页面,将处理结果封装成json返回, ajax接收后解析得到请求是否成功状态值,根据逻辑提示用户操作结果;
- 成功或失败都返回封装的json对象
- 返回值类型:自定义结果bean
- 用到的注解:
- @Controller
- @ResponseBody
- return JSONObject.toJSONString(resultBeanObject);
情况二:处理成功跳转页面,处理失败、异常提示用户;
- 成功跳转返回modelandview跳转到目标页面
- 失败返回封装的json对象
- 返回值类型:ModelAndView
- 用到的注解:
- @Controller
- @ResponseBody
- 处理失败情况
response.setCharacterEncoding("utf-8");
try {
PrintWriter writer = response.getWriter();
writer.write(exceptInfo); //exceptInfo封装的错误结果bean,被转为json字符串传给ajax回调函数;
writer.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}