2011-05-28 10 views
6

मेरे वसंत वेब अनुप्रयोग वसंत के साथ ajax उपयोग कर रहा है, और यह वसंत द्वारा प्रदान की डेमो आवेदन पर सामान्य रूप में आधारित:वसंत एमवीसी + अजाक्स। त्रुटियों को कैसे प्रदर्शित करें?

https://src.springframework.org/svn/spring-samples/mvc-ajax/trunk/ (अतिरिक्त जानकारी: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/)

क्लाइंट साइड मैं एक रूप है पर (JSP):

$("#createLevel").submit(function() { 
     var level = $(this).serializeObject(); 
     $.postJSON("create.do", level, function(data) { 
      alert(data); 
     }); 
     return false;    
    }); 
01:

<form:form modelAttribute="createLevel" action="createLevel" method="post"> 
    <div class="form-item"> 

    <form:label id="nameLabel" for="name" path="name" cssErrorClass="error">Level Name</form:label><br/> 
    <form:input path="name" /><form:errors path="name" /> 
    </div> 
    <div class="form-item"> 
    <input type="submit" value="Submit"> 
    </div> 
</form:form> 

मैं निम्नलिखित js विधि द्वारा सर्वर से प्रपत्र सबमिट

सर्वर साइड मैं एक मान्यता है पर यह नीचे दिखाया गया है:

public final class LevelDto extends AbstractDto implements Serializable { 
    private static final long serialVersionUID = 1L; 

    private int id; 

    @NotNull 
    @Size(min = 2, max = 30) 
    @LevelExistsConstraint(message = "Level with provided name is exists") 
    private String name; 
    // set; get; 
} 

और नियंत्रक

@RequestMapping(value = "/admin/create.do", method = RequestMethod.POST) 
    public @ResponseBody 
Map<String, ? extends Object> createLevel(@RequestBody LevelDto level, 
     HttpServletResponse response) { 
    //JSR-303 
    Set<ConstraintViolation<LevelDto>> failures = validator.validate(level); 

    if (!failures.isEmpty()) { 
     response.setStatus(HttpServletResponse.SC_BAD_REQUEST); 
     return validationMessages(failures); 

    } else { 

     return Collections.singletonMap("id", 10); 

    } 
} 

जब मैं सर्वर मुझे लगता है कि सभी चीजों को सही ढंग से पर जा रहे हैं करने के लिए गलत डेटा सबमिट - मेरा सत्यापनकर्ता डेटा संसाधित कर रहा है, और क्लाइंट को त्रुटि प्रतिक्रिया प्राप्त हो रही है; इसके अलावा, प्रतिक्रिया सामग्री में मैं निम्न देखें:

{"name":"size must be between 2 and 30"} 

मेरे समस्या मैं सही ढंग से प्राप्त त्रुटि संदेश बाध्य करने के लिए कैसे नहीं पता है कि है। जाहिर है, मैं इसे जेएस द्वारा कर सकता हूं, लेकिन मैंने सोचा कि वसंत स्वचालित रूप से दृश्य में सभी त्रुटि संदेशों को बाध्य कर रहा है।

किसी भी मदद की वास्तव में सराहना की जाती है।

-Cyril

+1

+1 वही समस्या। क्या आपको अपना समाधान मिला है? –

+0

अच्छी तरह से, मैंने छोड़ दिया और आदी द्वारा अनुशंसित तरीके से उपयोग किया (स्वीकृत उत्तर देखें) –

उत्तर

4

प्रपत्र क्षेत्र, स्थिति, और विवरण की एक कंटेनर के रूप में AjaxResponse वर्ग पैदा करते हैं।

class AjaxResponse { 
    model; //form attribute 
    status; // OK or ERROR 
    description; // message description such as error message 
} 

आप पाश विफलता सत्यापन परिणाम, अपने नियंत्रक कार्रवाई की प्रतिक्रिया के रूप में JSON प्रारूप में विफलता मान्यता परिणाम के आधार पर AjaxResponse की सूची उत्पन्न कर सकते हैं।

+0

धन्यवाद, लेकिन यह एक सीधा समाधान है। मुझे उम्मीद है कि वसंत बाध्य संदेशों को स्वचालित रूप से कॉन्फ़िगर करने का एक तरीका अभी भी मौजूद है –

संबंधित मुद्दे