ActionContext和ServletActionContext小结 (二)

2014-11-24 11:14:46 · 作者: · 浏览: 1
ntext.getRequest(); 这条语句放在这个位置是错误的,同样把这条语句放在构造方法中也是错误的。


public String login() {
req = ServletActionContext.getRequest(); //req的获得必须在具体的方法中实现
user = new User();
user.setUid(uid);
user.setPassword(password);
if (userDAO.isLogin(user)) {
req.getSession().setAttribute("user", user);
return SUCCESS;
}
return LOGIN;
}
public String queryAll() {
req = ServletActionContext.getRequest(); //req的获得必须在具体的方法中实现
uList = userDAO.queryAll();
req.getSession().setAttribute("uList", uList);
return SUCCESS;
}

//其他代码片段
}


(2)IoC方式(即使用Struts2 Aware拦截器)


要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。


public class UserAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {


private HttpServletRequest request;
private HttpServletResponse response;


public void setServletRequest(HttpServletRequest request) {
this.request = request;
}


public void setServletResponse(HttpServletResponse response) {
this.response = response;
}


public String execute() {
HttpSession session = request.getSession();
return SUCCESS;
}
}