spring mvc怎么分页

不及物动词 其他 38

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring MVC中实现分页可以通过以下步骤进行:

    1. 引入相关依赖
      在项目的pom.xml中添加Spring MVC和相关的分页插件的依赖,如MyBatis、PageHelper等。

    2. 配置分页插件
      在项目的配置文件中,如application.properties或application.yml中添加分页插件的相关配置,包括每页显示的数量、数据库驱动、连接信息等。

    3. 创建分页查询方法
      在Controller中创建一个方法用于进行分页查询,并接收相关的查询参数。

    4. 设置分页参数
      在方法中调用分页插件的API,设置分页参数,包括页码、每页显示数量等。

    5. 执行分页查询
      调用数据访问层(如MyBatis的Mapper接口)进行分页查询,接收返回的结果。

    6. 返回分页结果
      将查询结果封装成分页对象或者使用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年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Spring MVC中,实现分页功能可以通过以下几个步骤:

    1. 添加依赖:首先,需要在项目的pom.xml文件中添加对分页库的依赖。常见的分页库有Spring Data JPA、MyBatis和PageHelper等。

    2. 配置分页参数:在Spring MVC的配置文件(通常是application.properties或application.yml)中配置分页参数。这些参数包括每页显示的记录数、要显示的页面等。

    3. 创建分页请求类:创建一个用于接收分页请求参数的类。该类通常包含当前页码、每页显示记录数等属性,并提供相应的getter和setter方法。

    4. 在Controller中使用分页:在处理请求的Controller方法中使用分页参数。通过将分页参数传递给服务层或数据访问层,以便从数据库中查询相应的数据。

    5. 返回分页结果:将查询到的数据放入分页对象中,并将分页对象返回给前端。前端可以通过分页对象获取分页相关的信息,如总页数、当前页码、每页显示记录数等。

    下面是一个示例代码:

    1. 添加依赖:
    <!-- 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>
    
    1. 配置分页参数:
    # application.yml
    spring:
      data:
        web:
          pageable:
            default-page-size: 10
            max-page-size: 100
    
    1. 创建分页请求类:
    public class PageRequest {
    
        private int page; // 当前页码
        private int size; // 每页显示记录数
        // getter和setter方法省略
    }
    
    1. 在Controller中使用分页:
    @RestController
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @GetMapping("/users")
        public Page<User> getUsers(PageRequest pageRequest) {
            return userService.getUsers(pageRequest.getPage(), pageRequest.getSize());
        }
    }
    
    1. 返回分页结果:
    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年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    使用Spring MVC进行分页可以通过以下步骤来实现:

    1. 引入相关依赖:
      首先,在项目的构建文件(如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>
    
    1. 配置分页拦截器:
      在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;
    }
    
    1. 配置分页插件:
      在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;
        }
    
        // 配置数据源和其他相关配置
        // ...
    }
    
    1. 使用分页查询:
      在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对象中,以便在视图中进行展示。

    1. 在视图中展示分页数据:
      最后,在视图中展示分页数据,可以通过以下方式实现:
    <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年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部