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