2011-01-26 11 views

उत्तर

40

JSR 303 default message interpolation algorithm आपको वैलिडेशन मैसेज नामक संसाधन बंडल की आपूर्ति करके संदेशों को कस्टमाइज़ करने की अनुमति देता है। युक्त classpath में एक ValidationMessages.properties फ़ाइल बनाएँ:

javax.validation.constraints.NotNull.message=CUSTOM NOT NULL MESSAGE 
javax.validation.constraints.Size.message=CUSTOM SIZE MESSAGE 

यह @Size बाधा के लिए डिफ़ॉल्ट संदेश बदलता है, तो आप हाइबरनेट विशेष @Length बाधा के बजाय @Size बाधा का उपयोग करना चाहिए।

सभी बाधाओं के लिए डिफ़ॉल्ट संदेश बदलने के बजाय, आप एक विशिष्ट बाधा उदाहरण के लिए संदेश बदल सकते हैं। बाधा पर message विशेषता सेट करें:

@NotNull(message = "{email.notnull}") 
private String email; 

और ValidationMessages.properties फाइल करने के लिए संदेश जोड़ें:

email.notnull=E-mail address is required 
+8

मुझे लगता है कि यहाँ से जोड़ने के लिए एक योग्य साइडबार है कि आप की तरह आकार का न्यूनतम और अधिकतम मान प्राप्त कर सकते है 'javax.validation.constraints.Size.message = लंबाई {न्यूनतम} और {max} के बीच होना चाहिए characters' – Patrick

+3

कैसे करना है मैं इस गुण फ़ाइल के साथ internacionalization करते हैं? प्रमाणीकरण मैसेज_ .properties? –

+0

@ चाइन हुआंग, क्या होगा यदि {min/max] के मान गतिशील रूप से बदल सकते हैं? क्या कोई संदेश पैरामीटर के रूप में निर्दिष्ट कर सकता है {न्यूनतम मान {given_at_runtime}} है, जहां प्रदान किया गया_at_runtime एनोटेशन विशेषता का संदर्भ नहीं दे रहा है –

0

वसंत से मुझे लगता है कि आप स्प्रिंग एमवीसी का मतलब मान रहे हैं।

नीचे संदर्भ http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

ये रहा से -

आप एक सत्यापनकर्ता वर्ग बना सकते हैं -

public class UserValidator implements Validator { 

    public boolean supports(Class candidate) { 
     return User.class.isAssignableFrom(candidate); 
    } 

    public void validate(Object obj, Errors errors) { 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "required", "Field is required."); 
     ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "required", "Field is required."); 
    } 
} 

किसी भी मान्यता पाठ आप ऊपर क्षेत्र में चाहते में रख दें।

<tr> 
    <td>First Name:</td> 
    <td><form:input path="firstName" /></td> 
    <!-- Show errors for firstName field --> 
    <td><form:errors path="firstName" /></td> 
</tr> 

इस तरह firstName के लिए किसी भी सत्यापन त्रुटि प्रिंट किया जाएगा -

JSP में आप निम्नलिखित टैग की आवश्यकता होगी।

+0

मैं @NotNull तरह एनोटेशन मान्यकरण उपयोग कर रहा हूँ। तो स्प्रिंग जार में संदेश कहां संग्रहीत किया जाता है? मुझे लगता है कि मुझे उन्हें –

+0

@ apache-fan संपादित करने की आवश्यकता है, मैं आपके उत्तर को वोट देता हूं क्योंकि ओपी आधुनिक जेएसआर 303-शैली सत्यापन के बारे में बताता है और पुराने वसंत-विशिष्ट के बारे में नहीं। –

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