display:table实现分页功能的例子

来源:互联网 发布:经济数据点评 编辑:程序博客网 时间:2024/05/18 02:39

jsp:

<display:table requestURI="${ctx}/usermanager/searchUser.do" id="userList"name="list" pagesize="${pageSize}" partialList="true" size="${resultSize}"><display:column title="全选" style="text-align:center; width:60px;"><input id="ids" name="ids" type="checkbox" value="${userList.id}"/></display:column><display:column property="name" sortable="true" title="姓名" style="text-align:center" /><display:column property="name" sortable="true" title="年龄"style="text-align:center" /><display:column property="name" sortable="true" title="个数"style="text-align:center" /><display:column property="createDate" sortable="true" title="创建日期"style="text-align:center" /><display:column title="操作" style="text-align:center"><a href="${ctx}/usermanager/editUser.do?id=${userList.id}">编辑</a>  <a href="${ctx}/usermanager/deleteUserById.do?id=${userList.id}">删除</a>  <a href="#">详细</a>  </display:column></display:table>

action :

/** * 分页按条件查询 * @return * @throws Exception */public String searchUser() throws Exception {String ok = (String)request.getSession().getAttribute("userLogin");if(ok==null || !ok.equals("LoginSuccess")){return "userError";}StringBuffer sqlWhere = new StringBuffer("");String isSearch = request.getParameter("isSearch");//查询标志if(isSearch != null && isSearch.equals("yes")) {//表示是查询String username = request.getParameter("username");if(username != null&&!username.equals("")) {sqlWhere.append(" and user.d0020 like '%" + username.replaceAll(" ", "") + "%'");}} else {request.setAttribute("user", null);}sqlWhere.append(" and user.d0910 ='1'");String pageIndexName = new org.displaytag.util.ParamEncoder("userList").//"user"为jsp页面中<display:table> 的id值encodeParameterName(org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);//当前索引页final Integer pageIndex = new Integer(GenericValidator                .isBlankOrNull(request.getParameter(pageIndexName)) ? 0                : (Integer.parseInt(request.getParameter(pageIndexName)) - 1));Map map = userService.searchUser(pageIndex,PAGESIZE_CONSTANT,sqlWhere.toString());request.setAttribute("list", map.get("result"));request.setAttribute("pageSize", PAGESIZE_CONSTANT);request.setAttribute("resultSize", map.get("total"));return "list";}


dao:

public Map searchUser(Integer curPage, Integer pageSize,String whereStr) {String sql = "FROM User user";return queryData2MapByPage(curPage, pageSize, sql, whereStr);}


basedao:

public Map queryData2MapByPage(Integer curPage,Integer pageSize,String sql, String whereStr) {HashMap map = null;try {Session session = SessionFactory.getSession();    String queryStr = sql + " where 1=1";    if (whereStr != null && whereStr.length() > 0) {            queryStr += whereStr;        }    String queryCountStr = "select count(*) " + queryStr;    int total = Integer.valueOf((session.createQuery(queryCountStr).iterate().next())+"");//得到总数    Query query = session.createQuery(queryStr);        query.setFirstResult(pageSize.intValue() * (curPage.intValue()));        query.setMaxResults(pageSize.intValue());        List result = query.list();        map = new HashMap();        map.put("total", total);        map.put("result", result);}catch (Exception e){e.printStackTrace();} finally {SessionFactory.closeSession();}return map;}