首先想要了解这个插件的使用,可以去下面的网址查看,我这里只是简单的运用,而更多的操作则需要自己探索
- 首先按照文档来看我们先导入所需要的包
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.3</version>
</dependency>
如果没有使用maven,则可以通过导入jar包,具体见文档
- 接着我们需要配置拦截器插件(我使用的是mybatis配置文件上)
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
这里我们需要注意的是配置的顺序
plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
properties?, settings?,
typeAliases?, typeHandlers?,
objectFactory?,objectWrapperFactory?,
plugins?,
environments?, databaseIdProvider?, mappers?
而plugin标志具体参数的配置和用处,可以查看文档,这里不多叙述
- 环境已经搭好,接下来自然是使用了,我们来看代码
- 最开始是sql查询语句
<select id="selectByInfo" resultMap="essay">
select * from essay_info where
instr(headname,#{info})>0 or instr(content,#{info})>0
</select>
- 先是后端@Controller的代码
page是页数也就是偏移量,默认为1
PageHelper.startPage(page,5);这句话很关键必须把它放在查询动作之前,这里表示的是从page页开始的5个数据
PageInfo pageInfo = new PageInfo<>(list)这句也是很重要,通过这个我们才能获得到想要的页码信息等
@RequestMapping("/findEssay")
public String findEssay(@RequestParam("info")String info,
@RequestParam(value = "page", defaultValue = "1")Integer page,
HttpServletRequest request,Model model){
PageHelper.startPage(page,5);
List<Essay> list = essayService.selectRanAll(info);
PageInfo<Essay> pageInfo = new PageInfo<>(list);
request.setAttribute("findInfo",pageInfo);
model.addAttribute("info",info);
return "article_find";
}
- 再是jsp上回显数据的代码了
<%
PageInfo<Essay> pageInfo = (PageInfo<Essay>)request.getAttribute("findInfo");
List<Essay> list = pageInfo.getList();
for (Essay essay: list){
%>
<div class="article shadow">
<div class="article-left">
<img src="images/cover/201703181909057125.jpg" alt="基于laypage的layui扩展模块(pagesize.js)!" />
</div>
<div class="article-right">
<div class="article-title">
<a href="detail.jsp"><%=essay.getHeadname()%></a>
</div>
<div class="article-abstract">
<%=essay.getContent()%>
</div>
</div>
<div class="clear"></div>
<div class="article-footer">
<span><i class="fa fa-clock-o"></i> <%=essay.getDate()%></span>
<span class="article-author"><i class="fa fa-user"></i> <%=essay.getUserid()%></span>
<span><i class="fa fa-tag"></i> <a href="#"><%=essay.getLikenum()%></a></span>
<span class="article-viewinfo"><i class="fa fa-eye"></i> <%=essay.getWatch()%></span>
<span class="article-viewinfo"><i class="fa fa-commenting"></i> <%=essay.getCommentnum()%></span>
</div>
</div>
<%}%>
然后我们搜索字符‘a’来看看结果
可以看到明显找到了我们想要的
可是现在最重要的是如何进行分页浏览,其实我们同样有方法去解决
我们在尾部加上首页、上一页、下一页、尾页来进行我们想要的操作,代码如下
<center>
<table>
<tr>
<td colspan="4">
<a href="findEssay?page=1&info=${info}">首页</a>
<a href="findEssay?page=<%=pageInfo.getPrePage()%>&info=${info}">上一页</a>
<a href="findEssay?page=<%=pageInfo.getNextPage()%>&info=${info}">下一页</a>
<a href="findEssay?page=<%=pageInfo.getPages()%>&info=${info}">末页</a>
</td>
</tr>
</table>
</center>
写完之后可以看到