I am new to Struts2 and I am trying to retrieve an attribute I set in the action class.
LoginAction.java
:
public class LoginAction extends ActionSupport implements SessionAware {
private static final long serialVersionUID = 1L;
private Map<String, Object> session;
// field variables
@Override
public String execute() {
UserManager um = new UserManager();
String registeredPassword = um.getCurrentUserDetail("user_password", getUserId());
if(getUserPassword().equals(registeredPassword)) {
String currentUserId = um.getCurrentUserDetail("user_id", userId);
int currentUserType = um.getCurrentUserType(userId);
session.put("currentUserId", (String) currentUserId);
session.put("currentUserType", (Integer) currentUserType);
System.out.println("You have successfully logged in!");
return SUCCESS;
}
System.out.println("Your login has failed!");
return ERROR;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
// getters and setters
}
struts.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="com.mypackage.model.LoginAction">
<result name="success">/index.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
</struts>
index.jsp
:
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page import="com.mypackage.model.LoginAction" %>
<head>
<%
int type = 0;
if(session.containsKey("currentUserType")) {
type = (Integer) session.get("currentUserType");
}
%>
</head>
However, the methods containsKey()
and get()
are returning undefined for session
. How do I get the attributes that was put in session in Struts2?