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

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;
	}


 

 


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值