spring mvc怎么分页
-
Spring MVC中实现分页可以通过以下步骤进行:
-
引入相关依赖
在项目的pom.xml中添加Spring MVC和相关的分页插件的依赖,如MyBatis、PageHelper等。 -
配置分页插件
在项目的配置文件中,如application.properties或application.yml中添加分页插件的相关配置,包括每页显示的数量、数据库驱动、连接信息等。 -
创建分页查询方法
在Controller中创建一个方法用于进行分页查询,并接收相关的查询参数。 -
设置分页参数
在方法中调用分页插件的API,设置分页参数,包括页码、每页显示数量等。 -
执行分页查询
调用数据访问层(如MyBatis的Mapper接口)进行分页查询,接收返回的结果。 -
返回分页结果
将查询结果封装成分页对象或者使用ModelAndView将结果传递给前端页面进行展示。
下面是一个简单的示例代码:
@Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/userList") public ModelAndView getUserList(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { ModelAndView mv = new ModelAndView(); // 设置分页参数 PageHelper.startPage(pageNum, pageSize); // 执行分页查询 List<User> userList = userService.getUserList(); // 封装分页结果 PageInfo<User> pageInfo = new PageInfo<>(userList); mv.addObject("pageInfo", pageInfo); mv.setViewName("userList"); // 设置返回的视图名 return mv; } }在上述示例代码中,通过@RequestParam注解来接收前端传递的页码和每页显示数量,默认值分别为1和10。接着使用PageHelper.startPage()方法设置分页参数。然后调用userService.getUserList()方法进行分页查询,得到查询结果列表。最后使用PageInfo类封装查询结果,并将其传递给前端展示。
通过以上步骤,就可以在Spring MVC中实现分页查询功能。根据具体的需求和使用的框架,可能会有一些细微的差异,但总体思路是相似的。
1年前 -
-
在Spring MVC中,实现分页功能可以通过以下几个步骤:
-
添加依赖:首先,需要在项目的pom.xml文件中添加对分页库的依赖。常见的分页库有Spring Data JPA、MyBatis和PageHelper等。
-
配置分页参数:在Spring MVC的配置文件(通常是application.properties或application.yml)中配置分页参数。这些参数包括每页显示的记录数、要显示的页面等。
-
创建分页请求类:创建一个用于接收分页请求参数的类。该类通常包含当前页码、每页显示记录数等属性,并提供相应的getter和setter方法。
-
在Controller中使用分页:在处理请求的Controller方法中使用分页参数。通过将分页参数传递给服务层或数据访问层,以便从数据库中查询相应的数据。
-
返回分页结果:将查询到的数据放入分页对象中,并将分页对象返回给前端。前端可以通过分页对象获取分页相关的信息,如总页数、当前页码、每页显示记录数等。
下面是一个示例代码:
- 添加依赖:
<!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- PageHelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency>- 配置分页参数:
# application.yml spring: data: web: pageable: default-page-size: 10 max-page-size: 100- 创建分页请求类:
public class PageRequest { private int page; // 当前页码 private int size; // 每页显示记录数 // getter和setter方法省略 }- 在Controller中使用分页:
@RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public Page<User> getUsers(PageRequest pageRequest) { return userService.getUsers(pageRequest.getPage(), pageRequest.getSize()); } }- 返回分页结果:
public class PageResponse<T> { private List<T> content; // 数据列表 private int totalPages; // 总页数 private long totalElements; // 总记录数 private int number; // 当前页码 private int size; // 每页显示记录数 // getter和setter方法省略 } @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public PageResponse<User> getUsers(PageRequest pageRequest) { Page<User> page = userService.getUsers(pageRequest.getPage(), pageRequest.getSize()); PageResponse<User> response = new PageResponse<>(); response.setContent(page.getContent()); response.setTotalPages(page.getTotalPages()); response.setTotalElements(page.getTotalElements()); response.setNumber(page.getNumber()); response.setSize(page.getSize()); return response; } }以上就是在Spring MVC中实现分页功能的基本步骤。具体的实现方式可以根据项目的需求和使用的分页库进行调整。
1年前 -
-
使用Spring MVC进行分页可以通过以下步骤来实现:
- 引入相关依赖:
首先,在项目的构建文件(如Maven的pom.xml)中添加Spring MVC和分页库的依赖。例如,可以添加以下依赖:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.10</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version> </dependency>- 配置分页拦截器:
在Spring MVC的配置文件中,配置分页拦截器。可以通过以下方式来配置:
@Bean public PageInterceptor pageInterceptor() { PageInterceptor pageInterceptor = new PageInterceptor(); Properties properties = new Properties(); // 设置数据库方言 properties.setProperty("helperDialect", "mysql"); // 设置是否进行分页合理化 properties.setProperty("reasonable", "true"); pageInterceptor.setProperties(properties); return pageInterceptor; }- 配置分页插件:
在Spring MVC的配置文件中,配置分页插件。可以通过以下方式来配置:
@Configuration @EnableTransactionManagement public class MyBatisConfig { @Autowired private PageInterceptor pageInterceptor; @Bean public SqlSessionFactoryBean sqlSessionFactoryBean() { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); sessionFactory.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml")); sessionFactory.setPlugins(new Interceptor[] { pageInterceptor }); return sessionFactory; } // 配置数据源和其他相关配置 // ... }- 使用分页查询:
在Spring MVC的控制器中,可以使用分页查询来获取分页数据。例如:
@Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/users") public String getUsers(Model model, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> users = userService.getAllUsers(); PageInfo<User> pageInfo = new PageInfo<>(users); model.addAttribute("users", users); model.addAttribute("pageInfo", pageInfo); return "users"; } }在上述示例中,使用
PageHelper.startPage()方法来启动分页查询,传入页码和每页显示的记录数。然后,将查询结果封装到PageInfo对象中,以便在视图中进行展示。- 在视图中展示分页数据:
最后,在视图中展示分页数据,可以通过以下方式实现:
<table> <thead> <tr> <th>ID</th> <th>姓名</th> <!-- 其他字段 --> </tr> </thead> <tbody> <c:forEach items="${users}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <!-- 其他字段 --> </tr> </c:forEach> </tbody> </table> <div> <a href="?pageNum=1">首页</a> <a href="?pageNum=${pageInfo.prePage}">上一页</a> <a href="?pageNum=${pageInfo.nextPage}">下一页</a> <a href="?pageNum=${pageInfo.pages}">尾页</a> </div>在上述示例中,使用
<c:forEach>标签来遍历用户列表,将每个用户的信息显示在表格中。同时,在底部添加了分页导航链接,通过不同的pageNum参数值来切换页码。1年前 - 引入相关依赖: