2010-10-25 27 views
13

मैंने अपने सत्यापन तर्क को निम्नानुसार कार्यान्वित किया है:जेएसएफ प्रमाणीकरण क्लाइंट-साइड या सर्वर-साइड है?

  <h:inputText id="title" value="#{...}" 
      required="true" requiredMessage="...some..text..." 
      validatorMessage="...some..other..text..." > 
      <f:validateLength minimum="10" maximum="50"/> 
     </h:inputText> 

मैंने क्लाइंटसाइड और सर्वरसाइड सत्यापन और उनके फायदे और नुकसान के बारे में बहुत कुछ पढ़ा है। लेकिन मुझे इस बारे में कोई जानकारी नहीं है कि उपर्युक्त कोड क्या करता है।

क्या कोई इसे समझा सकता है :-)

चीयर्स

उत्तर

29

ग्राहक साइड सत्यापन में कर सकते हैं, यह ग्राहक (webbrowser) जिसमें क्लाइंट साइड भाषा की मदद, उदा इनपुट मान्य करता है जावास्क्रिप्ट। सर्वर साइड सत्यापन में, यह सर्वर (वेबसर्वर) है जो सर्वर साइड भाषा की सहायता से इनपुट को मान्य करता है, उदा। जावा।

आप केवल ग्राहक साइड सत्यापन कभी नहीं करना चाहिए, क्योंकि परिणाम चलाया (और इस प्रकार भी hackable/spoofable) enduser कर रहा है। आमतौर पर, आप क्लाइंट साइड सत्यापन का उपयोग करना चाहते हैं क्योंकि यह बहुत जल्द प्रतिक्रिया देता है। एंडुसर को फॉर्म भरने के लिए इंतजार करने की आवश्यकता नहीं है और उसे "सामग्री की फ्लैश" का सामना करने की आवश्यकता नहीं है (पेज रिक्त स्थान और फिर नई सामग्री के साथ फिर से प्रदर्शित होता है)। सबमिट किए गए डेटा की अखंडता सुनिश्चित करने के लिए आप सर्वर साइड सत्यापन का उपयोग करना चाहते हैं। सर्वर साइड सत्यापन के परिणाम पर एंडुसर का कोई नियंत्रण नहीं है।

जेएसएफ के मामले में, सत्यापन हमेशा सर्वर पक्ष है। चूंकि जेएसएफ 2.0 बिल्टिन अजाक्सिकल कार्यक्षमता का उपयोग करके एक फॉर्म (और इस प्रकार फॉर्म को भी मान्य करता है) सबमिट करना संभव है। यह दो दुनिया के सर्वश्रेष्ठ संयोजन को जोड़ता है: सामग्री के फ्लैश के बिना त्वरित प्रतिक्रिया और सर्वर पक्ष सत्यापन की मजबूती/अखंडता।

+0

इन बुद्धिमान शब्दों के लिए धन्यवाद। तुम मुझे कैसे मेरे कोड को ajax शामिल करने के लिए :-) कि महान :-) होगा ... या यह बस कभी कभी भ्रमित टैग है एक लिंक (या एक उदाहरण) दे सकते हैं? – Sven

+1

हाँ, 'च: ajax' अपने कोड में जावास्क्रिप्ट/AJAX के पेश करने का एक तरीका है। http://stackoverflow.com/questions/3138488/how-to-use-ajax-with-jsf-2-0 –

+2

@Sven: डाल '<च कैसे इसे का उपयोग शुरू करने के लिए की संकेतों के लिए, एक प्रासंगिक प्रश्न देखें: AJAX execute = "@ form" render = "@ form" /> '' UICommand' घटक के अंदर। या यदि आप प्रत्येक इनपुट तत्व के धुंध पर सत्यापन करना चाहते हैं, तो प्रत्येक 'UIInput' घटक के अंदर' 'रखें। – BalusC

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