1.定义MyHibernateDaoSupport 扩展HibernateSupport
mport java.sql.SQLException; import org.hibernate.HibernateException; public class MyHibernateDaoSupport extends HibernateDaoSupport { 2.定义要分页的实体的Dao接口 如: public interface StudentDao { Student get(int id); void save(Student student); void update(Student student); void delete(int id); void delete(Student student); List<Student> findAll(); List<Student> findAllByPage(int pageNo,int pageSize); int getStudentCount(); List<Student> findStudentByNameAndNumber(String stuName,String stuNumber); } 3.定义实现类 主要写出两个分页中要用到的方法 public List<Student> findAllByPage(int pageNo, int pageSize) { if(pageNo<1){ return null; } int offset=(pageNo-1)*pageSize; return findByPage("from Student", offset, pageSize); } public int getStudentCount() { List<Student> listStudent=this.getHibernateTemplate().find("from Student"); return listStudent.size(); } 4.定义Service接口 public interface ExamService { int STUDENT_PAGE_SIZE=3; int QUESTION_PAGE_SIZE=3; int addStudent(String stuNumber,String name,String className,String humanId,String email,String address,String phone) throws Exception; void deleteStudent(int id) throws Exception; List<Student> listStudent(int pageNo) throws Exception; int addQuestion(String quTitle,String quHard,String quScore,String quAnswer,String quType,String selectOption,int typeid) throws Exception; void deleteQuestion(int id) throws Exception; List<Question> listQuestion(int pageNo) throws Exception; void deleteExamtype(int typeid) throws Exception; int addExamtype(String textName,String testTime)throws Exception; List<Examtype> getAllExamtype()throws Exception; boolean adminLogin(String admName,String admPwd)throws Exception; int getStudentCount()throws Exception; int getQuestionCount()throws Exception; int getPageCount(int count,int pageSize); String studentLogin(String stuName,String stuNumber)throws Exception; Question getNextQuestion(List<Integer> alreadys,int typeid)throws Exception; Question getQuestionById(int id)throws Exception; String getExamtypeName(int typeid)throws Exception;; } 5.定义实现类 public int getPageCount(int count, int pageSize) { return (count+pageSize-1)/pageSize; } public int getStudentCount() throws Exception { return studentDao.getStudentCount(); } public List<Student> listStudent(int pageNo) throws Exception { return studentDao.findAllByPage(pageNo, STUDENT_PAGE_SIZE); } 6.ListStudentAction.javaint studentCount=examService.getStudentCount(); ActionMessages errors=new ActionMessages(); if(studentCount<1) { errors.add("studentCount",new ActionMessage("studentCount.null")); mapping.findForward("success"); } int pageCount=examService.getPageCount(studentCount,examService.STUDENT_PAGE_SIZE); int pageNo; if(request.getParameter("pageNo")==null || request.getParameter("pageNo").trim().equals("")) { pageNo=1; } try { pageNo=Integer.parseInt(request.getParameter("pageNo").trim()); } catch (Exception e) { pageNo=1; } if(pageNo>pageCount){ pageNo=pageCount; } request.setAttribute("pageCount",pageCount); request.setAttribute("currentPage",pageNo); request.setAttribute("studentList", examService.listStudent(pageNo)); return mapping.findForward("success"); 7.listStudent.jsp <table cellspacing="0" cellpadding="0" border="1" width="700"> <logic:lessThan value="${requestScope.pageCount}" name="currentPage" |
|