2010-01-16 21 views
14

में @ valid (JSR-303) का उपयोग करके सत्यापित किए गए त्रुटि संदेशों को नहीं दिखा रहा है मैंने डिस्पैचर-सर्वलेट में <mvc:annotation-driven /> निर्दिष्ट किया है। मैं @InitBinder का उपयोग नहीं कर रहा हूं।
और मैंस्प्रिंग एमवीसी

@RequestMapping(method = RequestMethod.POST, value = "new") 
    public String save(@Valid Article article,ModelMap model) { 
//code here 
} 

तरह नियंत्रक की विधि में सत्यापन के लिए @valid एनोटेशन उपयोग कर रहा हूँ और मान्यता ठीक काम करता है, लेकिन इसके बजाय में त्रुटि दिखाने का .. नमूना एचटीएमएल कोड में दिखाया गया

<tr> 
     <td>Title</td> 
     <td><form:input path="title"/></td> 
     <td><form:errors path="title"/></td> 
</tr> 

यह फेंकता अपवाद ..

org.springframework.web.util.NestedServletException: अनुरोध प्रसंस्करण अनुत्तीर्ण होना; org.springframework.validation.BeanPropertyBindingResult: वस्तु मैदान पर 'लेख' में 2 त्रुटियों फील्ड त्रुटि 'urlInfo.url': नेस्टेड अपवाद org.springframework.validation.BindException है को अस्वीकार कर दिया मूल्य []; कोड [typeMismatch.article.urlInfo.url, typeMismatch.urlInfo.url, typeMismatch.url, typeMismatch.java.net.URL, typeMismatch]; तर्क [org.springframework.context.support.DefaultMessageSourceResolvable: कोड [article.urlInfo.url, urlInfo.url]; तर्क []; डिफ़ॉल्ट संदेश [urlInfo.url]]; डिफ़ॉल्ट संदेश [ के गुण मान को परिवर्तित करने में विफल 'urlInfo.url' के लिए आवश्यक 'java.net.URL' टाइप करें; नेस्टेड अपवाद org.springframework.core.convert.ConversionFailedException: 'java.lang.String' से 'java.net.URL' टाइप करने के लिए मान को परिवर्तित करने में असमर्थ; नेस्टेड अपवाद org.springframework.core.convert.ConversionFailedException: 'java.lang.String' से 'java.net.URL' टाइप करने के लिए मान को परिवर्तित करने में असमर्थ; नेस्टेड अपवाद java.lang.reflect.InvocationTargetException] फ़ील्ड 'शीर्षक' पर ऑब्जेक्ट 'आलेख' में फ़ील्ड त्रुटि: अस्वीकार मूल्य []; कोड [Size.article.title, Size.title, Size.java.lang.String, आकार]; तर्क [org.springframework.context.support.DefaultMessageSourceResolvable: कोड [article.title, title]; तर्क []; डिफ़ॉल्ट संदेश [शीर्षक], {javax.validation.constraints.Size.message}, 6, [Ljava.lang.Class; @ 1db3aac, 2147483647, [Ljava.lang.Class; @ 1e90abf]; डिफ़ॉल्ट संदेश [आकार में होना चाहिए 6 और 2147483647 के बीच]

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:659) 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213) 
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171) 
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) 
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) 
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 
यह कॉन्फ़िगर करने के लिए कैसे, एक अपवाद फेंक नहीं करने के लिए और बदले में पेज और शो त्रुटि संदेश पर लौटने ...

+0

आपने सत्यापन कैसे सक्षम किया है?अपने नियंत्रक पर '@ InitBinder' का उपयोग करना, या आपके संदर्भ में' 'का उपयोग करना? आप जो भी इस्तेमाल कर रहे हैं, कृपया उन प्रश्नों को अपने प्रश्न में जोड़ें। – skaffman

उत्तर

16

आप चाहिए ,

@RequestMapping(method = RequestMethod.POST, value = "new") 
public String save(@Valid Article article, BindingResult result, ModelMap model) { 
    if (result.hasErrors()) 
     return "formView"; 
17

अपने नियंत्रक हैंडलर विधि में यह सुनिश्चित करें कि BindingResult तर्क कॉम के तुरंत बाद है: स्पष्ट रूप से यह तय करें कि सत्यापन त्रुटियों के साथ क्या करना और तर्क।

+1

यह मेरे लिए जवाब सही था। –

+0

बहुत अजीब लेकिन यह मेरे लिए भी काम किया। मुझे हमेशा बताया गया था कि वसंत अपने आप पर नियंत्रक विधि पैरामीटर का पता लगा सकता है और मुझे उनके बारे में चिंता करने की आवश्यकता नहीं होगी! लेकिन यह कम से कम एक उदाहरण है जहां पैरामीटर का क्रम निष्पादन को प्रभावित करता है! – Jaywalker

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