springmvc分页查询
时间: 2023-07-02 22:21:18 浏览: 105
好的,针对您的问题,我可以给出以下的解答:
Spring MVC框架中的分页查询通常可以借助于PageHelper插件来实现。PageHelper是MyBatis分页插件,它可以拦截MyBatis的查询操作,并在查询语句执行前自动添加分页相关的语句。使用PageHelper可以帮助我们轻松地实现分页查询功能。
以下是实现Spring MVC分页查询的步骤:
1. 引入PageHelper插件依赖。
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
```
2. 在Spring MVC配置文件中配置PageHelper插件。
在Spring MVC配置文件中添加以下配置:
```
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
dialect=mysql
</value>
</property>
</bean>
</array>
</property>
</bean>
```
其中,dialect属性指定数据库类型,这里以MySQL为例。
3. 在Controller中编写分页查询方法。
在Controller中编写分页查询方法,例如:
```
@RequestMapping("/list")
public ModelAndView list(@RequestParam(defaultValue="1") int pageNum, @RequestParam(defaultValue="10") int pageSize) {
ModelAndView mv = new ModelAndView("list");
// 使用PageHelper进行分页查询
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userService.getUserList();
PageInfo<User> pageInfo = new PageInfo<User>(userList);
mv.addObject("userList", userList);
mv.addObject("pageInfo", pageInfo);
return mv;
}
```
在这个方法中,我们使用PageHelper的startPage方法开始分页查询,然后调用userService的getUserList方法获取用户列表,最后将查询结果和分页信息添加到ModelAndView中返回。
4. 在JSP页面中显示分页查询结果。
在JSP页面中显示分页查询结果,例如:
```
<table>
<thead>
<tr>
<th>ID</th>
<<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div>
<c:if test="${pageInfo.pages > 1}">
<c:url value="/user/list" var="url">
<c:param name="pageNum" value="${pageInfo.pageNum-1}"/>
</c:url>
<a href="${url}">上一页</a>
<c:forEach begin="1" end="${pageInfo.pages}" var="i">
<c:url value="/user/list" var="url">
<c:param name="pageNum" value="${i}"/>
</c:url>
<c:if test="${pageInfo.pageNum == i}">
<strong>${i}</strong>
</c:if>
<c:if test="${pageInfo.pageNum != i}">
<a href="${url}">${i}</a>
</c:if>
</c:forEach>
<c:url value="/user/list" var="url">
<c:param name="pageNum" value="${pageInfo.pageNum+1}"/>
</c:url>
<a href="${url}">下一页</a>
</c:if>
</div>
```
在这个JSP页面中,我们使用c:forEach标签遍历查询结果,使用pageInfo对象显示分页信息,使用c:url标签生成分页链接。
阅读全文