- Java code
public class test { ActionContext actionContext = ActionContext.getContext(); Map session = actionContext.getSession();//注意这里........... static Session s=HibernateSessionFactory.getSession(); public List oneselect(int id) { // TODO Auto-generated method stub String hql = "select fw from TblFwxx as fw where fwid=?"; Query q=s.createQuery(hql); q.setLong(0, id); List list = q.list(); System.out.println(list); return list; }// 单信息 public static void main(String[] args) { List list=new test().oneselect(81); System.out.println(list); }}
Map session = actionContext.getSession();//注意这里...........
这一句加了运行就报空指针. 不加运行就是对的有结果!
我在想是不是session干扰了!
求解答!
加的主要意图是为了得到浏览器session对象!别说用SessionAware借口得到,我的实际用中是没用session注入的,即session用借口的不到!
------解决方案--------------------------------------------------------
按照你当前的测试,你是不可能得到HttpSession的,HttpSession是只有你通过浏览器请求以后,应用服务器才会根据你的请求socket来封装程会话,也就是H这个HttpSession,ActionContext是容器上下文的意思,不能用你这种方式测试。类在加载的时候,就被初始化,初始化就包Null异常,你的程序就终止,肯定下面的就不会有结果了