2010-11-02 16 views
12

मॉडल से पहले जाँच हो रही है ....JSR-303 प्रकार बाइंडिंग

@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits") 
private int value; 

सेम फ़ाइल ....

<mvc:annotation-driven /> 

नियंत्रक ....

@RequestMapping(value = "/admin/save.htm", method = { RequestMethod.POST }) 
public ModelAndView saveSection(@Valid @ModelAttribute Section section, BindingResult result) { 
    if(result.hasErrors()) { 
     return new ModelAndView("admin/editSection", "section", section); 
    } 

मैं कैसे करूँ केवल "संख्या" को संख्याओं तक सीमित करें? अगर मैं एक नंबर के अलावा कुछ दर्ज करते हैं, मैं इस त्रुटि मिलती है:

Failed to convert property value of type java.lang.String to required type java.lang.Integer for property value; nested exception is org.springframework.core.convert.ConversionFailedException: Unable to convert value "A" from type java.lang.String to type java.lang.Integer; nested exception is java.lang.IllegalArgumentException: Unable to parse A

मैं कुछ पदों को देखा है initBinding उल्लेख है, लेकिन मैं यह कैसे उपयोग करने के लिए या अगर यह भी मुझे बाहर करने में मदद करेगा यकीन नहीं है। इसे पहले हल किया जाना है। क्या यह सुनिश्चित करने का कोई तरीका है कि यह बंधने से पहले एक संख्या है?

या, अगर किसी को सही messages.properties प्रविष्टि पोस्ट कर सकता इस त्रुटि ओवरराइड करने के लिए, वह मेरे लिए भी काम कर सकता है।

मैं @Pattern कोशिश की, लेकिन है कि ints

उत्तर

24

पर काम नहीं करता आप उल्लेख किया है, आप messages.properties में एक उपयोगकर्ता के अनुकूल संदेश की जरूरत है। आपको निम्न संदेश कोड में से एक (चयनात्मकता के विभिन्न स्तरों के साथ) का उपयोग कर सकते हैं:

  • typeMismatch.section.value
  • typeMismatch.value
  • typeMismatch.int
  • typeMismatch

इसके अलावा, जब आप नहीं जानते बाध्यकारी एर के अपने toString() रिटर्न पूर्ण विवरण - संदेश कोड, तो आप बस BindingResult मुद्रित कर सकते हैं rors।

+0

आप इसे और अधिक विस्तृत व्याख्या कर सकते हैं? messages.properties का सही स्थान पर –

+0

अधिक जानकारी और इस जवाब में .xml config फाइल में यह घोषणा की: http://stackoverflow.com/questions/6540300/spring-3-0-mvc-seems-to-be- अनदेखी-संदेशों-गुण –

+4

क्या यहां एक परिपत्र संदर्भ प्रतीत हो रहा है, एक जवाब (अधिक विवरण के लिए), जो इस उत्तर के लिए वापस अंक को यह जवाब अंक! – gresdiplitude

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