请问一下这个问题哪里出错了,谢谢
struts2和hibernate做的项目,在Action里编写如下代码:public String updatePassword() {
String repassword = admin.getAdmin_repassword();
String admin_name = (String) request.getSession().getAttribute("admin_name");
sql = "from Admin where admin_name = '" + admin_name + "'";
objectDao = new ObjectDao<Admin>();
Admin admin = objectDao.queryFrom(sql);
admin.setAdmin_password(repassword);
String result = "管理员修改密码失败!";
if (objectDao.updateT(admin)) {
result = "管理员修改密码成功!请您重新登录";
}
request.setAttribute("result", result);
return SUCCESS;
}
请问为什么与数据库连接时出现了空指针问题,是不是String admin_name = (String) request.getSession().getAttribute("admin_name");获取JSP页面的session对象时出错?请大家帮忙解决一下谢谢了。
--------------------编程问答-------------------- 没必要这样request.getSession().getAttribute("admin_name");
直接request.getParameter("admin_name"); --------------------编程问答-------------------- String admin_name = (String) request.getSession().getAttribute("admin_name");
写成request.getParameter("admin_name");
页面传过来的值不是在session里
用session取,必须是你setAttribute的值才能取 --------------------编程问答-------------------- 楼主首先可以通过debug模式进行跟踪,然后查看具体是哪个地方出现了null值,然后再具体进行分析原因。 --------------------编程问答-------------------- debug你的程序 看执行到哪行的时候出错了。然后再分析到底是什么原因。 --------------------编程问答-------------------- Structs2好像不能直接取到request对象吧?而且你都用框架了,为什么还用request,session的,直接从jsp页面取不到吗?就像取密码那样,直接get多好 --------------------编程问答-------------------- 小弟不才,我想问一下 sql = "from Admin where admin_name = '" + admin_name + "'";
这句话能执行吗?他们都说空指针是最容易解决的问题 --------------------编程问答-------------------- Dbug --------------------编程问答-------------------- objectDao = new ObjectDao<Admin>();
这里的dao的原因吧 楼主new 了一个新的Dao 就不是项目里的控制事务的Dao了 所以报null指针错误 --------------------编程问答-------------------- 应该是这句的问题,if (objectDao.updateT(admin)) {...
你没从session中取到值,是不是你已经注销了,又运行其他功能? --------------------编程问答-------------------- 不是吧,什么是struts2不能直接取到request对象这句话有错误啊。什么直接用get啊admin.getAdmin_password()? --------------------编程问答-------------------- 也不行 --------------------编程问答-------------------- 这个Dao是项目里的,用来与Hibernate建立连接的 --------------------编程问答-------------------- 把这句话:
sql = "from Admin where admin_name = '" + admin_name + "'";
改成:
sql = "from Admin a where a.admin_name = '" + admin_name + "'";
补充:Java , Web 开发