struts分页的一种实现!(二)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

查询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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航