struts 2 里session传值的问题

为什么在JSP页面接收SESSION的值总是NULL呢
LoginAction.java
public class LoginAction extends ActionSupport{//这个类继承了ActionSupport类,
private String userid;

private String password;

public String getUserid() {   
    return userid;   
}   

public void setUserid(String userid) {   
    this.userid = userid;   
}   

public String getPassword() {   
    return password;   
}   

public void setPassword(String password) {   
    this.password = password;   
}   

public String execute(HttpServletRequest request) throws Exception {   
    RegisterDAO dao = new RegisterDAO();
       List<User> userlist1 = dao.allUsers();
       for(int i=0;i<userlist1.size();i++){
       if (userlist1.get(i).getUserid().equals(this.userid)&&userlist1.get(i).getPassword().equals(this.password)){
           request.getSession().setAttribute("id", this.userid); 
           return "success";
       }
       }
           return "fail";

}   

}

struts.xml



/success.jsp
/error.jsp


主页面jsp


<%
String b=(String)session.getAttribute("id");
out.print(b);
%>

结果显示null

5个回答

public String execute(HttpServletRequest request) throws Exception {

RegisterDAO dao = new RegisterDAO();
List userlist1 = dao.allUsers();
for(int i=0;i<userlist1.size();i++){
if (userlist1.get(i).getUserid().equals(this.userid)&&userlist1.get(i).getPassword().equals(this.password)){
request.getSession().setAttribute("id", this.userid);
return "success";
}
}
return "fail";

}   

actionContext.getcontext.getSession().put("dd","dd");

struts2中对用户请求进行处里时struts2自动创建一个request,对象,而不是给传值。

[b]这是什么意思?[/b]

[code="java"]public String execute(HttpServletRequest request) throws Exception[/code]
[b]
要在Struts2中使用Session,一般是通过ActionContext进行的。
[/b]
[code="java"]Map session = ActionContext.getContext().getSession();

session.put(key,value);[/code]

public String execute(HttpServletRequest request) throws Exception { 这里边不用参数吧,没见过
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("listShops", listShops);
在页面#request.listShops可以的

获取session方式不对,应该这样:

Map session = ActionContext.getContext().getSession();

session.put(key,value);

看来楼主对struts2还不是很熟啊,建议楼主多看看书

再学学吧,,,最起码简单的demo得看一个,你那个execute有被运行吗?有那个参数吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐