关于servlet 和action 中的获取seession中的属性的 问题;
今天做了个测试; 在struts2 中的action实现登陆;
可是在 文件上传的servlet 总是不能获取到session 中的 user 对象;
代码如下;
UserAction---登陆;---------------------
ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
session.put("user", userList.get(0));
其中userList 是根据 用户名和密码 查找的user 集合;
在我的Servelet 中是这样的 User user = (User) request.getSession().getAttribute("user");
System.out.println(user.getId());
可是总是报告空指针啊; 是不兼容的问题吗; 是封装的和原来的不一样导致吗那么我想在servlet 中获取 session中的user 对象要怎么获取啊??
难道在action 中的所有用到session 的地方都改为使用没有包装过的session 吗感觉好麻烦.
谢谢
Servlet session action
[解决办法]
想用封装的就用SessionAware接口吧!
[解决办法]
在使用ActionContext时有一点要注意:
不要在Action的构造函数里使用ActionContext.getContext(),因为这个时候ActionContext里的一些值也许没有设置,这时通过ActionContext取得的值也许是null;
用ServletActionContext就不会。。