PHP技术那点事
全部
技术
PHP
MySQL
前端
Linux
JAVA
退出
编辑文章
选择分类
PHP
MySQL
前端
Linux
Java
工具
选择专栏
设计模式
java基础
Angular学习
Java面试题
描述:
封面图上传 :
+
点击上传图片
####pom.xml文件用到的包 ```
org.springframework.boot
spring-boot-starter-thymeleaf
nz.net.ultraq.thymeleaf
thymeleaf-layout-dialect
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.3
``` #### Controller 代码 ``` package top.bowen.controller; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import top.bowen.pojo.Articles; import top.bowen.pojo.Users; import top.bowen.service.ArticleService; import top.bowen.service.UserService; import top.bowen.utils.TimeFormatHelper; import java.text.ParseException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Controller public class IndexController { @Autowired ArticleService articleService; @Autowired UserService userService; @RequestMapping(value = {"/","/home"},method = RequestMethod.GET) public String index(ModelMap map,@RequestParam(name = "type", required = false,defaultValue = "0") Integer type, @RequestParam(name = "search_content", required = false) String title, @RequestParam(name = "page",required = false,defaultValue = "0") Integer page, @RequestParam(name ="pageSize", required = false,defaultValue = "10")Integer pageSize) throws ParseException { //文章信息,包括分页信息 PageInfo
articlesPageInfo = articleService.queryArticlesList(type, title, page, pageSize); map.addAttribute("pageInfo",articlesPageInfo); return "home"; } } ``` #### service层代码 关键代码 通过startPage方法实现数据库分页 PageHelper.startPage(page, pageSize); 通过PageInfo获取分页查询后的数据,包括数据库列表数据,和一些分页参数 PageInfo
articlesPageInfo = new PageInfo<>(articlesList); ``` package top.bowen.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Select; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.thymeleaf.util.StringUtils; import tk.mybatis.mapper.entity.Example; import top.bowen.mapper.ArticlesMapper; import top.bowen.pojo.Articles; import top.bowen.service.ArticleService; import top.bowen.utils.JsonUtils; import java.util.List; @Service public class ArticlesServiceImpl implements ArticleService { @Autowired private ArticlesMapper articlesMapper; @Override @Transactional(propagation = Propagation.SUPPORTS) public PageInfo
queryArticlesList(Integer type, String title, Integer page, Integer pageSize) { if(page< 0){ page = 0; } if(pageSize < 0){ pageSize = 20; } //分页类 PageHelper.startPage(page, pageSize); Example example = new Example(Articles.class); Example.Criteria criteria = example.createCriteria(); if (type > 0) { criteria.andEqualTo("type", type); } if (!StringUtils.isEmptyOrWhitespace(title)) { criteria.andLike("title", "%" + title + "%"); } criteria.andEqualTo("state", 0); example.orderBy("createdAt").desc(); List
articlesList = articlesMapper.selectByExample(example); //3、获取分页查询后的数据 PageInfo
articlesPageInfo = new PageInfo<>(articlesList); //4、封装需要返回的分页实体 return articlesPageInfo; } } ``` #### view层处理 home.html页面 把分页的视图文件包含到当前页面你想要显示分页的位置 判断pageInfo.pages > 1,是为了在只有一页的情况下不显示 ```
``` #### view层处理 pagination.html页面 分页主逻辑页面,即显示的分页条逻辑 ```
«
«
{{ $page }}
»
»
```
保存文章