在我的当前Spring项目中,当我向服务器提交表单时,响应是由这个方法处理的:
在我的控制器中,提交由以下这个方法处理:
$('form.form').each(function () {
var form = this;
$(form).ajaxForm(function (data) {
form.reset();
$(".alert-info").find("#alert").html(data);
$(".alert-info").show();
});
});
在我的控制器中,提交由以下这个方法处理:
@RequestMapping(value="cadastra", method=RequestMethod.POST)
@ResponseBody
@ResponseStatus(HttpStatus.CREATED)
public void cadastra(@ModelAttribute("object") E object, BindingResult result, @RequestParam(value="file", required=false) MultipartFile file, @RequestParam(value="icone", required=false) MultipartFile icone, @RequestParam(value="screenshot", required=false) MultipartFile screenshot[]) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IOException {
serv.cadastra(object);
serv.upload_picture(object, file, "picture");
serv.upload_picture(object, icone, "icone");
}
此ControllerAdvice类处理来自控制器方法的错误响应:
@ControllerAdvice
@PropertySource({"classpath:error.properties"})
public class GlobalDefaultExceptionHandler {
@Autowired
private Environment env;
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
// If the exception is annotated with @ResponseStatus rethrow it and let
// the framework handle it - like the OrderNotFoundException example
// at the start of this post.
// AnnotationUtils is a Spring Framework utility class.
if (AnnotationUtils.findAnnotation(e.getClass(), ResponseStatus.class) != null)
throw e;
// Otherwise setup and send the user to a default error-view.
ModelAndView mav = new ModelAndView();
mav.addObject("exception", e);
mav.addObject("url", req.getRequestURL());
mav.addObject("msg", e.getLocalizedMessage());
mav.setViewName("erro");
return mav;
}
}
我正在寻找一种方法,可以在我的jquery代码中读取响应的http状态码(可以是1xx,2xx,3xx,4xx或5xx),并根据该代码显示相关的消息。
在浏览器的网络监视器中,我可以看到成功的响应已经实现了HTTP 201代码;当发生错误时,响应应该具有4xx或5xx代码,具体取决于触发的异常。
因此,我想知道是否有人可以提供提示,如何修改我的jquery代码和COntrollerAdvice来实现这一点。