Je crée une application Struts2.sessionMap.invalidate() ne fonctionne pas en essayant de se déconnecter
Je suis en train de vous déconnecter, mais je reçois java.lang.nullpointerexception
Ma méthode est la suivante:
public String logout(){
Map session = ActionContext.getContext().getSession();
SessionMap sessionMap=(SessionMap)session;
log.info("session:"+session);
log.info("sessionmap:"+sessionMap);
log.info("sessionMap.get()"+sessionMap.get("USROBJECT"));
try{
if(sessionMap!=null){
sessionMap.remove("USROBJECT");
sessionMap.invalidate();
}
}
catch(Exception e){
log.info("Exception is:"+e.toString());
}
return "LOGOUT";
}
Je reçois l'objet quand je suis en train d'imprimer session, SessionMap et "USROBJECT"
objet, mais quand J'appelle remove, je reçois une exception. S'il vous plaît aider.
méthode de connexion:
public Map session = ActionContext.getContext().getSession();
public SessionMap sessionMap;
public void setSession(Map session) {
sessionMap=(SessionMap) session;
}
public String login(){
us = new UserSession();
us= getUserDetails();
log.info("userName is:"+us.getUserName());
log.info("password is:"+us.getPassword());
us.setLastLoginTime(loginTime);
sessionMap.put("USROBJECT", us);
return "register";
}
struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<package name="Hello" extends="struts-default">
<action name="*LoginAction" method="{1}"
class="com.pgnext.apps.action.LoginAction">
<result name="register">/jsp/register.jsp</result>
<result name="error">/jsp/error.jsp</result>
<result name="logout">/jsp/login.jsp</result>
</action>
</package>
</struts>
17:09:31,038 INFO LoginAction:171 - going to remove USROBJECT
17:09:31,038 INFO LoginAction:183 - Exception is : java.lang.NullPointerException
j'avais ajouté le « USROBJECT » dans SessionMap, mais quand je suis en train de l'enlever, je reçois nulle exception de pointeur – Raina
Retry avec le code ci-dessus.N'utilisez pas SessionMap et utilisez des constantes pour vous assurer que vous ne générez pas de fautes de frappe dans le nom de la clé. Essayez également de récupérer la session de la manière décrite dans la réponse liée. P.S: souvenez-vous que vous pouvez également voter maintenant, puisque vous avez 15 points de réputation. –