为什么在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
结果显示null
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有被运行吗?有那个参数吗?