2012-05-24 27 views
0

我正在開發一個將一些Ajax添加到Spring-MVC項目的項目。我刪除了標籤將Spring3 MVC錯誤移動到Ajax?

<form:errors path="fieldName"/> 

這將插入錯誤的JSP,現在我試圖讓一些Ajax代碼的網頁上顯示的錯誤。任何人都可以應該如何更新下面的代碼來顯示錯誤消息,而不是錯誤?

success: function(response) 
      { 
      // we have the response 
      $('#error').hide('fast'); 
      if(response.status == "SUCCESS") 
      { 
       $('#error').hide('fast'); 
       alert("Thanks for submitting. We will get back to you as soon as possible.\n\n" + response.result); 
       $('#error').hide('slow'); 

      }else 
      { 
       errorInfo = ""; 
       for(i = 0 ; i < response.result.length ; i++){ 
        errorInfo += "<br>" + (i + 1) +". " + response.result[i].code; 
       } 
       $('#error').html("Please correct following errors: " + errorInfo); 
       $('#info').hide('slow'); 
       $('#error').show('slow'); 
       $('#input').show('slow'); 
      }  
     }, 
     error: function(e){ 
      alert('Error: ' + e); 
     } 
     }); 

上面的代碼工作,以顯示錯誤,但不是錯誤消息

下面

是我的Java代碼:

@RequestMapping(value = "/ajax.html", method = RequestMethod.POST) 
    public @ResponseBody 
    JsonResponse addMessage(@Valid 
      @ModelAttribute(value = "memberrequest") MemberRequest memberrequest, 
      BindingResult result) { 

      JsonResponse res = new JsonResponse(); 


     if (!result.hasErrors()) { 
      res.setStatus("SUCCESS"); 

      // Setting data over to RT 

      String Ticket = zzz.sentWebRequest(memberrequest); 

      /* 
      * Setting out the ticket number to be displayed to user 
      */ 

      Map<String, Object> model = new HashMap<String, Object>(); 
      Ticket t = new Ticket(); 
      t.setTicketDetails(Ticket); 

      model.put("ticket", t); 

      res.setResult(Ticket); 
     } else { 
      res.setStatus("FAIL"); 
      res.setResult(result.getAllErrors()); 
     } 

     return res; 
    } 
} 

JSON類:

公共類JsonResponse { private String status = null;私人 對象結果= null;

public String getStatus(){return status; }

public void setStatus(String status){this.status = status; }

public Object getResult(){return result; }

public void setResult(Object result){this.result = result; }

}

回答

1

嘗試response.result[i].defaultMessage而不是response.result[i].code

0
response.result 

有根據XMLHttpRequest 2由W3C

如果傳遞響應形式服務器端一些文本值在response對象沒有result屬性。您可以將它作爲一個整體文本response.responseText

+0

我添加了java代碼,所以你可以瞭解更多 – SJS