package com.dao;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;import org.apache.struts2.interceptor.SessionAware;import com.bean.fwxx;
import com.bean.users;public class UserDaoImp implements IUserDao, SessionAware {
 Map session; public List allselect() {
// TODO Auto-generated method stub
String sql = "select top 10 * from TBL_FWXX order by date";
ResultSet re = getsql.getResultSet(sql);
List list = new ArrayList();
try {
while (re.next()) {
fwxx fw = new fwxx();
fw.setTitle(re.getString("title"));
fw.setZj(re.getString("zj"));
fw.setDate(re.getString("date"));
fw.setFwid(re.getInt("fwid"));
list.add(fw);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}// 全部信息 public List oneselect(int id) {
// TODO Auto-generated method stub
String sql = "select * from TBL_FWXX where fwid=" + id + "";
ResultSet re = getsql.getResultSet(sql);
List list = new ArrayList();
try {
while (re.next()) {
fwxx fw = new fwxx();
fw.setTitle(re.getString("title"));
fw.setZj(re.getString("zj"));
fw.setDate(re.getString("date"));
fw.setFwid(re.getInt("fwid"));
fw.setUid(re.getInt("uid"));
fw.setJdid(re.getInt("jdid"));
fw.setLxid(re.getInt("lxid"));
fw.setShi(re.getInt("shi"));
fw.setTing(re.getInt("ting"));
fw.setFwxx(re.getString("fwxx"));
fw.setTelephone(re.getString("telephone"));
fw.setLxr(re.getString("lxr"));
list.add(fw); }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}// 单信息 public boolean check(String name, String pass) {
// TODO Auto-generated method stub
String sql = "select * from TBL_USER where uname='" + name
+ "' and upass='" + pass + "'";
ResultSet re = getsql.getResultSet(sql);
users user = new users();
try {
while (re.next()) {
user.setUid(re.getInt("uid"));
user.setUname(re.getString("uname"));
user.setUpass(re.getString("upass"));
System.out.println(user);
session.put("user", user);//这里 为什么会报错....
System.out.println(2);
return true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}// 登陆 public void setSession(Map<String, Object> arg0) {
// TODO Auto-generated method stub
this.session = arg0;
}}
java.lang.NullPointerException 
    com.dao.UserDaoImp.check(UserDaoImp.java:80)
    com.action.action.login(action.java:62)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)

解决方案 »

  1.   

    session.put("user", user);//这里 为什么会报错....
    这个地方的错误.....  
      

  2.   

    应该是你的session没有被初始化;
      

  3.   

    如何初始化  刚学struts2不久...
      

  4.   

    不过我的session没有初始化,就可以直接使用了,初始化也没问题的
      

  5.   


    验证了下 Map session=null;貌似也不对还是报错..
    我就特诧异...   
    我在action里面用的怪好的..
    真心看了半天不知道错什么地方了..
      

  6.   

    你的session没初始化 ,正常的声明应该是 Map session = new HashMap();你代码中只有Map session声明,其他地方有没有session = new **Map(),然后就直接对session操作,当然报空指针了。把你类体第一行Map session 改为 Map session = new HashMap();然后把HashMap 类引过来就OK了
      

  7.   

    另外帖子标题搞清楚,这不是Session 而是 Map .....
      

  8.   

    初始化  知道;  
    貌似这样接受不到页面的session了ActionContext actionContext = ActionContext.getContext();
            Map session = actionContext.getSession();
    这是可以得到;我这是SessionAware接口得到session 不能等new HashMap();吧 等了就不是了....
      

  9.   


    public class action  implements ServletRequestAware,SessionAware{
    List list;
    fwxx fw;
    users user;
    ServletRequest request;
    Map<String, Object> session;
    private IUserDao userdao=new UserDaoImp();
    public List getList() {
    return list;
    } public void setList(List list) {
    this.list = list;
    } public fwxx getFw() {
    return fw;
    } public void setFw(fwxx fw) {
    this.fw = fw;
    }
    public String allselect() throws Exception {
    // TODO Auto-generated method stub
    session.remove("user");
    list=userdao.allselect();
    return "success";
    }
    public String oneselect() throws Exception {
    // TODO Auto-generated method stub
    list=userdao.oneselect(fw.getFwid());
    return "success";
    }
    public String login() throws Exception {
    // TODO Auto-generated method stub
    String name=request.getParameter("uname");
    String pass=request.getParameter("upass");
    list=userdao.allselect();
    if(userdao.check(name,pass)){
    return "login";
    }else{
    return "success";
    }
    }
    public String myfw() throws Exception {
    // TODO Auto-generated method stub
    list=userdao.myselect();
    return "success";
    }
    public String fbfw() throws Exception {
    // TODO Auto-generated method stub

    return "success";
    }
    public void setServletRequest(HttpServletRequest arg0) {
    // TODO Auto-generated method stub
    request=arg0;
    } public void setSession(Map<String, Object> arg0) {
    // TODO Auto-generated method stub
    session=arg0;
    }

    }这是action代码  我就不明白  session代码基本一样一样的这在session就能得到...
      

  10.   

      public void setSession(Map<String, Object> arg0) {
            // TODO Auto-generated method stub
            session=arg0;
        }
      

  11.   

    session没有初始化,也就是没有注入。加一个getSession,setSession 方法试试。