
Controller
/**
* 单数据表、搜索、排序、分页示例
*/
@RequestMapping("/list3")
public String list3(HttpServletRequest request,Model model){
Sql sql = new Sql(request);
//增加添加搜索字段。这里的搜索字段跟log表的字段名对应
sql.setSearchColumn(new String[]{"type=","value","userid="});
//查询log数据表的记录总条数
int count = globalService.count("log", sql.getWhere());
//每页显示15条
Page page = new Page(count, 15, request);
//创建查询语句,只有SELECT、FROM,原生sql查询。其他的where、limit等会自动拼接
sql.setSelectFromAndPage("SELECT * FROM log", page);
//当用户没有选择排序方式时,系统默认排序。
sql.setDefaultOrderBy("id DESC");
//因只查询的一个表,所以可以将查询结果转化为实体类,用List接收。
List<Log> list = globalService.findEntityBySql(sql, Log.class);
//将数据记录传到页面以供显示
model.addAttribute("list", list);
//将分页信息传到页面以供显示
model.addAttribute("page", page);
return "demo/list/list3";
} View
增加 demo/list/list3.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.xnx3.com/java_xnx3/xnx3_tld" prefix="x" %>
<!DOCTYPE html>
<html lang="en">
<head>
<jsp:include page="../../publicPage/adminCommon/head.jsp">
<jsp:param name="title" value="日志列表DEMO"/>
</jsp:include>
</head>
<body>
<div>
<!-- 表单搜索 -->
<form method="get" style="margin-top:20px;">
<input type="hidden" name="orderBy" value="<%=request.getParameter("orderBy") %>" />
<span style="float:left;line-height:34px;margin-left:10px;">用户ID:</span>
<div class="input-group m-bot15 " style="width: 15%;float: left;">
<input type="text" name="userid" class="form-control" value="<%=request.getParameter("userid")==null? "":request.getParameter("userid") %>">
</div>
<span style="float:left;line-height:34px;margin-left:10px;">动作类型:</span>
<div class="input-group m-bot15 " style="width: 15%;float: left;">
<input type="text" name="type" class="form-control" value="<%=request.getParameter("type")==null? "":request.getParameter("type") %>">
</div>
<span style="float:left;line-height:34px;margin-left:10px;">描述:</span>
<div class="input-group m-bot15 " style="width: 15%;float: left;">
<input type="text" name="value" class="form-control" value="<%=request.getParameter("value")==null? "":request.getParameter("value") %>">
</div>
<div class="input-group m-bot15 " style="width: 100px; float: left;">
<span class="input-group-btn">
<input class="btn btn-success" type="submit" value="搜索">
<i class="fa fa-search"></i>
</span>
</div>
</form>
<!-- 用户自定义排序规则 -->
<div style="float:right;">
<script type="text/javascript">
orderBy('id_DESC=编号由大到小,id_ASC=编号由小到大,userid_ASC=用户ID由小到大');
</script>
</div>
</div>
<!-- 列表数据 -->
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>编号</th>
<th>用户id</th>
<th class="numeric">动作编号</th>
<th class="numeric">记录内容</th>
<th class="numeric">操作时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="log">
<tr>
<td>${log['id'] }</td>
<td>${log['userid'] }</td>
<td>${log['type'] }</td>
<td>${log['value'] }</td>
<td><x:time linuxTime="${log['addtime'] }"></x:time></td>
</tr>
</c:forEach>
</tbody>
</table>
<!-- 通用分页跳转 -->
<jsp:include page="../../publicPage/adminCommon/page.jsp">
<jsp:param name="page" value="${page }"/>
</jsp:include>
<jsp:include page="../../publicPage/adminCommon/footImport.jsp"></jsp:include>
</body>
</html>1.引入js文件
<script src="<%=basePath %>style/admin/js/iw_list.js"></script>
说明:
若引入了/publicPage/adminCommon/head.jsp头,则已自动加入了此js引入。无需再引入此项。
2.加入“排序方式”下拉按钮
<div style="float: right;">
<script type="text/javascript">
orderBy('id_DESC=编号由大到小,id_ASC=编号由小到大,userid_ASC=用户ID由小到大');
</script>
</div>说明:
1.id_DESC:检索时的排序规则,会在SQL查询前面自动拼接上ORDER BY 。
2.数据库字段_DESC或ASC,字段与排序方式之间用下划线“_”分割
3.id为数据库中的字段。如此数据表名为user,里面有一项为id,倒序排,可以这么写 :user.id_DESC,单表查询时数据表省略,只用字段名即可。
4.字段+下划线后的排序方式,正序ASC;倒序:DESC 为固定大写。同SQL中的ORDER BY 语句中一样
5.多个排序项中间用英文逗号“,”分割。
6.id_DESC=编号 后面的“编号为显示给用户看到的文字”,点击其会将id_DESC作为GET参数传递过去
3.若有搜索,<form>中加入参数传递
<input type="hidden" name="orderBy" value="<%=request.getParameter("orderBy") %>" />