额不好意思,是Navicat需要关掉上方的窗口刷新才可以看到
如果删除了最后一条数据,那么再次调用query()方法时,虽然从数据库里查询出了students,而此时students.size()为0,if条件判断为false,所以不能将session中的students属性更新为刚刚查询到的students,那么session中的students还是删除最后一条数据前的students,也就是说,session中的students一直有一条记录,所以在jsp页面上一直显示那最后一条想要删除的数据
一个是转发一个是重定向,都是跳转到其他action中,两者所携带的参数都会丢失,但转发处理的结果不会丢失,重定向会
删除了呀
把你的 StudentsAction 类和 struts.xml 文件都贴出来看下啊!
看你自己是否使用ModelDriven的方法
如果使用这种方法,实现了未定义的接口
就绪要查看一下你自己的 getModel这个方式是不是使用的默认 return null
如果是的话,修改代码就可以正常获取表单中的数据
package action; import java.util.List; import com.opensymphony.xwork2.ModelDriven; import entity.Students; import service.StudentsDAO; import service.impl.StudentsDAOImpl; //学生Action类 public class StudentsAction extends SuperAction implements ModelDriven<Students> { /** * */ private static final long serialVersionUID = 1L; Students student = new Students(); //查询所有学生动作 public String query() { StudentsDAO studentDao = new StudentsDAOImpl(); List<Students> list = studentDao.quertAllStudents(); //放进session里面 if (list != null && list.size() > 0) { session.setAttribute("students_list", list); } return "Student_query_success"; } //删除学生信息动作 public String delete() { StudentsDAO studentDao = new StudentsDAOImpl(); String sid = request.getParameter("sid"); studentDao.deleteStudents(sid); return "delete_success"; } //添加学生信息动作 public String add() { StudentsDAO studentDao = new StudentsDAOImpl(); if (studentDao.addStudents(student)) { return "add_success"; } return "add_failure"; } //添加修改学生资料动作 public String modify() { //获得传递过来的学生编号 String sid = request.getParameter("sid"); StudentsDAO studentDao = new StudentsDAOImpl(); Students s = studentDao.queryStudentsBySid(sid); session.setAttribute("modify_students", s); return "modify_success"; } // public String save() { StudentsDAO studentDao = new StudentsDAOImpl(); if (studentDao.updateStudents(student)) { return "save_success"; } return "save_failure"; } @Override public Students getModel() { // TODO Auto-generated method stub return this.student; } }
加mysql-connection.jar包就可以了
应该是你把sessionFactory关闭了
查询动作
public String query(){
StudentsDAO sdao = new StudentsDAOImpl();
List<Students> list = sdao.queryAllStudents();
if(list!=null&&list.size()>0){
session.setAttribute("students_list",list);
return "query_success";
}else{
session.setAttribute("students_list", null);
return "query_success";
}
}
这样就可以了 我是这样解决的 有其他方法一起讨论
String sid = request.getParameter("sid");
System.out.println("sid="+sid);
这句话输出是null 怎么解决? 之前看过有大神说jsp页面?后有空格 我的确定没有