实现struts分页的步骤
实现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