2012-05-17 37 views
5

का उपयोग कर मैं एक इकाई कहा जाता है उपयोगकर्ता है और मैं एक मोबाइल नंबर क्षेत्रमान्य मोबाइल हाइबरनेट एनोटेशन

मोबाइल नंबर क्षेत्र मान्य करने के लिए चाहते हैं कि उसे खाली छोड़ा जा सकता अनिवार्य नहीं है, लेकिन यह एक 10 अंकीय संख्या होना चाहिए संख्या।

यदि उपयोगकर्ता कम से कम 10 अंकों लंबाई में प्रवेश करता है तो एक त्रुटि फेंक दी जानी चाहिए।

नीचे मेरी उपयोगकर्ता श्रेणी है।

public class User { 

    @Size(min=0,max=10) 
    private String mobileNo; 

} 

जब मैं @Sized टिप्पणी के रूप में ऊपर उल्लेख किया करते थे, मैं मान कि अधिक से अधिक 10 से थे, लेकिन उपयोगकर्ता कम से कम 10 अंक दर्ज किया गया है, तो कोई त्रुटि मिली मान्य हो सकता है।

मेरी आवश्यकता है, यदि उपयोगकर्ता मोबाइल छोड़ देता है तो कोई फ़ील्ड रिक्त है जो वैध है लेकिन यदि कोई मान दर्ज किया गया है तो सत्यापन को यह सुनिश्चित करना चाहिए कि दर्ज संख्या केवल 10 अंक और 10 अंक है।

इस आवश्यकता के लिए मुझे किस एनोटेशन का उपयोग करना चाहिए?

उत्तर

17

@Size(min=10,max=10) यदि रिक्त स्थान से आपका मतलब शून्य हो तो नौकरी होगी।

यदि आप @NotNull एनोटेशन नहीं डालते हैं, null मान सत्यापन पास करेगा।

अपने खाली मतलब है, तो खाली स्ट्रिंग तो आप @Pattern सत्यापनकर्ता उपयोग करने की आवश्यकता:

@Pattern(regexp="(^$|[0-9]{10})") 

इस से मेल खाता है या तो खाली स्ट्रिंग या 10 अंक नंबर।

+0

लेकिन चूंकि अधिकांश एमवीसी ढांचे एक खाली स्ट्रिंग को उस क्षेत्र में बांध देंगे जब संबंधित टेक्स्ट बॉक्स खाली रहता है, जो वास्तव में समस्या को हल नहीं कर सकता है। मैंने अपनी खुद की सत्यापन एनोटेशन लिखकर एक बहुत ही समान समस्या को संबोधित किया। एक और चीज जिसे आप विचार कर सकते हैं वह क्षेत्र को सत्यापित करने के लिए @ पैटर्न और नियमित अभिव्यक्ति का उपयोग कर रहा है। –

+0

हम कैसे जांच सकते हैं कि फोन नंबर में हाइफ़न नहीं है या नहीं? पूर्व के लिए: 012-345-6789, ऐसे मानों को –

3

शायद आप अपने फोननबर्स को सत्यापित करने के लिए Google Code से libphonenumber के उपयोग के साथ सुझाई गई प्रतिक्रिया में सुधार कर सकते हैं।

+0

मान्य किया जाना चाहिए यह एक महान पुस्तकालय की तरह दिखता है। संख्याओं को मान्य और परिवर्तित करने के लिए इसे जांच लेंगे। – djmj

+0

हां यह है! निःसंदेह तुमसे हो सकता है! – ThierryB