में सत्र विशेषता का उपयोग कैसे कर सकता हूं मैंने जेएसएफ और प्राइमफेस का उपयोग करके एक लॉगिन फॉर्म लागू किया है। मैंने प्राइमफेस शोकेस वेबसाइट में this example का उपयोग किया।मैं फेसलेट पेज
मेरे पास डेटाटेबल दिखाने के लिए एक फेसलेट पृष्ठ है। अब मुझे इस तालिका पृष्ठ के साथ उपरोक्त लॉगिन फॉर्म को एकीकृत करने की आवश्यकता है। इसलिए मैंने सत्र विशेषता को संभालने के लिए LoginBean.java में कुछ पंक्तियां जोड़ दीं।
if (username.equals(getUsername_db()) && password.equals(getPassword_db())) {//valid user and paward
loggedIn = true;
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", getUsername_db());
//new lines
FacesContext context2 = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context2.getExternalContext().getSession(true);
session.setAttribute("user", username);
//end of new lines
...
यदि उपयोगकर्ता में लॉग इन नहीं कर रहा है मैं, DataTable से किसी स्तंभ को छिपाने की जरूरत है। अब मेरी समस्या, मैं कैसे सत्र विशेषता मेरी Facelets पृष्ठ के अंदर उपयोग कर सकते हैं कर रहा है?
धन्यवाद बलुस। लेकिन मुझे उपयोगकर्ता को दृश्य में एक वस्तु के रूप में मिला। इस तरह से कुछ "उपयोगकर्ता @ 1a8b71e" दिखाया। वैसे भी मुझे मेरी समस्या को हल करने के लिए आपके उत्तर से भाग मिला। मैंने सत्र सेटिंग भाग को हटा दिया और सत्रबॉयन क्लास को सत्र स्कोप्ड के रूप में सेट किया। और मैं सीधे अपने पैनल समूह टैग के अंदर मूल्य प्राप्त करने में सक्षम था। SQL सलाह के लिए धन्यवाद। मैंने इसे तैयार बयानों का उपयोग करके बदल दिया। –
स्पष्ट रूप से आपके कोड में दिखाए गए उपयोगकर्ता नाम 'को' स्ट्रिंग 'नहीं है। शायद आपने प्रश्न में कोड को बढ़ाया है? जिस तरह से एसक्यूएल टिप्पणी तैयार बयान के बारे में संकेत देने के लिए नहीं थी। आप उपयोगकर्ता नाम और पासवर्ड की तुलना कर रहे हैं ** दो बार ** (एक बार डीबी में और बाद में जावा में)। इसका कोई अर्थ नहीं निकलता। बस जांचें कि क्या डीबी ने एक रिकॉर्ड लौटाया है या नहीं, यह सब कुछ है। आपको एक बार फिर उपयोगकर्ता नाम/पासवर्ड की तुलना करने की आवश्यकता नहीं है जिसे आपने डीबी से पहले से जांचने और वापस करने के लिए कहा है। – BalusC
समझ गया! लेकिन मेरी आखिरी एसक्यूएल क्वेरी में मैंने केवल क्लॉज के साथ केवल उपयोगकर्ता नाम का उपयोग किया था। जैसे: स्ट्रिंग क्वेरी = "उपयोगकर्ता नाम से उपयोगकर्ता नाम चुनें, उपयोगकर्ता नाम = '" + uname + "';"; तो मैं सिर्फ username.equals (getUsername_db() भाग को हटा सकता हूं। मुझे केवल इस मामले में पासवर्ड जांचने की आवश्यकता है ... आपके सुझाव के लिए धन्यवाद। –