实现struts分页的步骤
查询Action的代码片断
public ActionForward execute(
ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Base queryForm= (Base) form; if(!queryForm.getName().equals("")){ PageController pc=new PageController(); EmployeeBase service=new EmployeeBase(); ArrayList result=(ArrayList)service.search(queryForm,pc); HttpSession session=request.getSession(); session.setAttribute("queryForm",queryForm); session.setAttribute("pageController",service.getPageController()); request.setAttribute("queryResult",result); request.setAttribute("pageController",service.getPageController()); return mapping.findForward("haveResult"); }else{ return mapping.findForward("noResult"); } }(3),翻页Action的代码片断
public ActionForward execute(
ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { file://读取翻页参数 TurnPageForm turnPageForm=(TurnPageForm)form; file://从PageController中取出查询信息,并使用bean提供的调用接口处理结果 HttpSession session=request.getSession(); PageController pc=(PageController)session.getAttribute("pageController"); Base queryForm=(Base)session.getAttribute("queryForm"); pc.setCurrentPage(turnPageForm.getViewPage()); EmployeeBase service=new EmployeeBase(); ArrayList result=(ArrayList)service.search(queryForm,pc); file://根据参数将数据写入 request request.removeAttribute("queryResult"); request.removeAttribute("pageController"); request.setAttribute("queryResult",result); request.setAttribute("pageController",pc); file://forward 到显示页面 return mapping.findForward("haveResult"); }(4)数据库访问bean中的片断
public Collection search(Base base, PageController pc)
throws SQLException { ArrayList emps = new ArrayList(); ResultSet rs = getSearchResult(base);rs.absolute(-1);
pc.setTotalRowsAmount(rs.getRow()); setPageController(pc); if (rs.getRow() > 0) {rs.absolute(pc.getPageStartRow());
do { System.out.println("in loop" + rs.getRow());
Base b = new Base();
b.setName(rs.getString("Name")); b.setIdCard(rs.getString("IDCard")); System.out.println("From db:" + rs.getString("IDCard")); emps.add(b); if (!rs.next()) { break; } } while (rs.getRow() < (pc.getPageEndRow() + 1)); } return emps; }(5)在jsp中,翻页部分的代码片断
<bean:write name="pageController" property="description"/>
<logic:equal name="pageController" property="hasPrevious" value="true"> <a href="turnPage.do?viewPage=<bean:write name="pageController" property="previousPage"/>" class="a02"> Previous </a> </logic:equal><logic:equal name="pageController" property="hasNext" value="true">
<a href="turnPage.do?viewPage=<bean:write name="pageController" property="nextPage"/>" class="a02"> Next </a> </logic:equal>
这样一来,翻页的功能可以以你喜欢的方式表现给client