spring mvc检查是否在javascript响应中是BindingResult

时间:2013-07-26 22:52:34

标签: ajax spring spring-mvc

如果controler返回带有验证错误的视图,有没有明确的方法来检查ajax succes响应?

CONTROLER:

if(result.hasErrors()) {
        return "place/add";
    }

的javascript:

$.ajax({
        url : "<spring:url value="/place/add"/>",
        type : 'POST',
        data : $("#newPlaceForm").serialize(),
        success : function(response) {

如何检查响应是否没有验证消息?

3 个答案:

答案 0 :(得分:0)

  

成功:功能(响应){

if(response.status == "SUCCESS"){

// success code

}else{
    // show validation errors
     errorInfo = "";
     for(var i =0 ; i < response.result.length ; i++){
        errorInfo += "<br>" + (i + 1) +". " + response.result[i].code;
      }

     $('#errorId').html("Please correct following errors: " + errorInfo);

},  error: function(e){
         alert('Error: ' + e);
     }

答案 1 :(得分:0)

我最终得到了:

                success : function(response) {
                try {
                    var status = $.parseJSON(response);
                    if (status.status = 'OK') {
                        alertify.success("Akcja wykonana pomyślnie");
                        $("#newPlaceForm").hide();
                        $("#spotPlaces").show();
                    }

                } catch (e) {
                    $("#newLocationBox").html(response);
                }

            }

对我来说似乎很清楚,我没有必要在html代码中搜索错误,如果一切正常我只是在控制器视图中返回,它只有$ {status}字段并且我添加属性status字符串化的Json model.addAttribute("status", "{\"status\": \"OK\"}");

答案 2 :(得分:0)

生成HTTP响应代码以指示错误更清楚。

例如:response.sendError(400, "Validation failed")

jQuery将根据响应代码执行提供的错误处理程序。

$.ajax( '/your/url').error(function (jqXHR) {
    if (jqXHR.status == 400) {
        console.log('Bad Request');
    }
});

这一点比较清楚,因为在成功处理程序中处理错误没有多大意义。使用浏览器开发人员工具也可以更轻松地调试失败的请求。