मैं HttpSession कंटेनर बना रहा हूँ इस तरह से:HttpSession - session.setAttribute कैसे प्राप्त करें?
@SessionScoped
@ManagedBean(name="userManager")
public class UserManager extends Tools
{
/* [private variables] */
...
public String login()
{
/* [find user] */
...
FacesContext context = FacesContext.getCurrentInstance();
session = (HttpSession) context.getExternalContext().getSession(true);
session.setAttribute("id", user.getID());
session.setAttribute("username", user.getName());
...
System.out.println("Session id: " + session.getId());
और मैं SessionListener जो चाहिए मुझे बनाया सत्र के बारे में जानकारी देता है:
@WebListener
public class SessionListener implements HttpSessionListener
{
@Override
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
System.out.println("Session id: " + session.getId());
System.out.println("New session: " + session.isNew());
...
}
}
मैं username
विशेषता कैसे मिल सकता है?
अगर मैं System.out.println("User name: " + session.getAttribute("username"))
.. फेंक देता है java.lang.NullPointerException
का उपयोग कर इसे कोशिश कर रहा हूँ
तो सत्र या System.out है लगभग सभी मामलों में एक कोड गंध JSF कोड के अंदर कच्चे सर्वलेट API का उपयोग कर में अशक्त –
है। इस विशेष मामले में, आप केवल सत्र स्कोप्ड प्रबंधित बीन का उपयोग क्यों नहीं करते? – BalusC
मुझे सवाल समझ में नहीं आता ...? 'FacesContext' के साथ कोड का पहला भाग सत्र स्कोप्ड प्रबंधित बीन में है। मैं अपनी पोस्ट संपादित कर रहा हूं .. क्या आप मुझे और बता सकते हैं? – gaffcz