HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
ResponseBody responseBody = method.getAnnotation(ResponseBody.class);
if (responseBody != null) {
Class<?> returnType = method.getReturnType();
if (returnType.isAssignableFrom(FormResponse.class)) {
FormResponse fres = new FormResponse(request);
Map<String, Object> model = new HashMap<String, Object>();
model.put("success", fres.isSuccess());
model.put("message", exception.getMessage());
model.put("data", null);
model.put("token", fres.getToken());
return new ModelAndView(new MappingJackson2JsonView(), model);
} else if (returnType.isAssignableFrom(String.class)) {
request.setAttribute(exceptionKey, exception);
return new ModelAndView("forward:/handleStringError");
}
}
Method method = handlerMethod.getMethod();
ResponseBody responseBody = method.getAnnotation(ResponseBody.class);
if (responseBody != null) {
Class<?> returnType = method.getReturnType();
if (returnType.isAssignableFrom(FormResponse.class)) {
FormResponse fres = new FormResponse(request);
Map<String, Object> model = new HashMap<String, Object>();
model.put("success", fres.isSuccess());
model.put("message", exception.getMessage());
model.put("data", null);
model.put("token", fres.getToken());
return new ModelAndView(new MappingJackson2JsonView(), model);
} else if (returnType.isAssignableFrom(String.class)) {
request.setAttribute(exceptionKey, exception);
return new ModelAndView("forward:/handleStringError");
}
}
本文介绍了一种处理HTTP响应中ResponseBody注解方法异常的情况,通过判断返回类型为FormResponse或String来分别采用JSON视图返回错误信息或转发到特定错误处理页面。

1505

被折叠的 条评论
为什么被折叠?



