2008-10-16 17 views
6

मुझे स्ट्रैट्स 1.2.4 का उपयोग करके इस विशाल विरासत जावा वेब ऐप को विरासत में मिला। मेरे पास ActionForms के बारे में एक विशिष्ट सवाल है। उनमें से कुछ में केवल स्ट्रिंग गुण हैं (संख्याओं के लिए भी), उनमें से कुछ प्रतीत होता है उचित प्रकार (इंटीजर, तिथि, स्ट्रिंग, आदि) का उपयोग करते हैं। यहाँ सबसे अच्छा अभ्यास क्या है?Struts ActionForm गुणों को किस प्रकार का होना चाहिए?

इसके अलावा, ऐसा लगता है कि यदि कोई संपत्ति इंटीजर प्रकार है, और उपयोगकर्ता द्वारा दर्ज किया गया मान एक पूर्णांक मान नहीं है, तो स्ट्रैट्स चुपचाप इसे निगलता है और केवल संपत्ति सेट नहीं करता है। इसके साथ क्या चल रहा है?

उत्तर

5

स्ट्रूट्स 1.2x के लिए, गुण जहां उपयोगकर्ता HTML फॉर्म पर मान डालता है या मानता है और स्ट्रैट्स एचटीएमएल टैग द्वारा स्वचालित रूप से एक्शनफॉर्म इंस्टेंस पर पॉप्युलेट किया जाता है तो स्ट्रिंग्स या बूलियन होना चाहिए। हालांकि, ऐसा कोई कारण नहीं है कि आपके एक्शनफॉर्म में गेटर विधियां क्यों नहीं हो सकती हैं जो गुणों को आपके आवेदन के लिए अधिक सार्थक प्रकार के रूप में वापस लाती हैं। तारीख।

3

यदि आप स्वयं कुछ सत्यापन करना चाहते हैं (या स्ट्रैट्स वैलिडेटर सुविधाओं का उपयोग करें जिन्हें 1.2 से बाद के स्ट्रैट्स से दोबारा बाहर किया गया है) तो आपको उस कारण के लिए स्ट्रिंग गुणों की आवश्यकता होगी: एक बार जब आप संख्यात्मक मानों को संग्रहीत करते हैं पूर्णांक या int मान, वे या तो संख्या या "कुछ भी नहीं" होना चाहिए - अन्यथा: आप एक इंटीजर संपत्ति में "बहुत" (शाब्दिक रूप से) कैसे स्टोर करते हैं?

क्लाइंट साइड सत्यापन (जैसे जावास्क्रिप्ट में) अभी भी काम करेगा, लेकिन आप इस पर भरोसा नहीं करना चाहते हैं।

यदि - एक अवैध नंबर दर्ज करने पर - आप उपयोगकर्ता के साथ एक खाली फ़ील्ड प्रस्तुत करने के साथ ठीक हैं, तो आप दिनांक-, पूर्णांक-, जो कुछ भी गुणों में मूल्यों को स्टोर कर सकते हैं। यदि आप त्रुटि संदेश के साथ मूल मान प्रस्तुत करना चाहते हैं, तो आपको स्ट्रिंग प्रॉपर्टी की आवश्यकता होगी।

यह वह कीमत है जिसे आपको मैन्युअल रूप से रूपांतरण करने की आवश्यकता है। स्ट्रैट्स 1.2 काफी पुराना है, इसलिए आप धीरे-धीरे अपने आधुनिक इंफ्रास्ट्रक्चर को अधिक आधुनिक तकनीक के साथ बदलने और दो प्रौद्योगिकियों (पुराने नए) पर एक ही समय में काम करने के बारे में सोचना चाहेंगे, जब तक कि पुराना हिस्सा पर्याप्त छोटा न हो (या महत्वहीन पर्याप्त) गिरा दिया जाना है।

एनबी - आपको यह भी अधिक नियंत्रण मिलता है कि आप कितने मूल्यों को संख्याओं के रूप में स्वीकार करना चाहते हैं। मुझे अभी भी एक पुराने स्ट्रैट्स क्रेडिटकार्ड-बैंकिंग-एप्लिकेशन को याद है जिसमें मैंने अपने प्रबंधक से पूछा कि अपेक्षित परिणाम क्या है जब आप अपने कार्ड से 3e2 यूरो वापस लेना चाहते हैं। उन्होंने 300 नहीं कहा (जैसे स्ट्रेट्स परिवर्तित) लेकिन एक त्रुटि का चयन किया।

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