pagehelper
https://pagehelper.github.io/docs/howtouse/
https://github.com/pagehelper/Mybatis-PageHelper
按照说明再bom.xml添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
dao层
public List<Feedback> getPageList(Map<String, Object> conditions);
dao层xml
<select id="getPageList" parameterType="Map" resultType="Feedback">
SELECT
<include refid="ColumnList"/>
FROM feedback
<where>
<if test="title != null and title !=''">
`title` LIKE #{title}
</if>
<if test="name != null and name !=''">
AND `name` LIKE #{name}
</if>
</where>
ORDER BY `id` DESC
</select>
service层
public List<Feedback> getPageList(Map<String, Object> conditions) {
if (conditions.size() > 0) {
for(Map.Entry<String, Object> condition : conditions.entrySet()) {
if (condition.getValue() != null) {
if (condition.getKey().equals("title") || condition.getKey().equals("name")) {
condition.setValue("%" + condition.getValue() + "%");
}
}
}
}
return feedbackDao.getPageList(conditions);
}
congroller层
String page = request.getParameter("page");
Integer pageNum = page == null ? 1: Integer.valueOf(page);
// 处理name和title
String title = request.getParameter("title");
String name = request.getParameter("name");
Map<String, Object> conditions = new HashMap<String, Object>();
conditions.put("title", title);
conditions.put("name", name);
PageHelper.startPage(pageNum, 2);
List<Feedback> feedbacks = feedbackService.getPageList(conditions);
PageInfo pageInfo = new PageInfo(feedbacks);
model.addAttribute("list", feedbacks);
model.addAttribute("pageInfo", pageInfo);
这里只需要使用
PageHelper.startPage(pageNum, 2);
就可以获得分页效果。
同时使用
PageInfo pageInfo = new PageInfo(feedbacks);
获得分页参数。
PageInfo跟文档里面的有出入,具体参考
https://apidoc.gitee.com/free/Mybatis_PageHelper/
html
<div class="layui-box layui-laypage layui-laypage-default" id="layui-laypage-10">
<span class="layui-laypage-count">共 [[${pageInfo.getPages()}]] 页 [[${pageInfo.getTotal()}]] 条</span>
<a href="404.html" th:href="@{/backend/feedback/index(title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-first">首页</a>
<a href="404.html" th:if="${pageInfo.isHasPreviousPage()}" th:href="@{/backend/feedback/index(page = ${pageInfo.getPrePage()}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-prev">上一页</a>
<a href="404.html" th:each="page : ${pageInfo.getNavigatepageNums()}" th:href="@{/backend/feedback/index(page = ${page}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" th:class="${page eq pageInfo.getPageNum()}? 'my-laypage-curr'">[[${page}]]</a>
<a href="404.html" th:if="${pageInfo.isHasNextPage()}" th:href="@{/backend/feedback/index(page = ${pageInfo.getNextPage()}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-next">下一页</a>
<a href="404.html" th:href="@{/backend/feedback/index(page = ${pageInfo.getNavigateLastPage()}, title = ${#request.getParameter('title')}, name = ${#request.getParameter('name')})}" class="layui-laypage-last">尾页</a>
</div>
这里的参数还没有找到比较方便的方法,以后深入了解看看。