在maven工程中PageHelper获取的参数获取不到,不准确,通过百度找到手写配置类文章,应用如下
下面是手写配置类
@Data
public class PageUtils<T> {
private List<T> pages; //数据
private long totalCount; //总数
private int pageIndex; //当前页
private int totalPages; //总页数
/**
* <p>分页方法</p>
* <p>参数(当前页码,每页行数)</p>
* <p>返回 pages 数据</p>
* <p> totalCount 总数</p>
* <p> pageIndex 当前页</p>
* <p> totalPages 总页数</p>
*/
public PageUtils(int pageIndex, int hang, List<T> pages) {
int fist = pageIndex * hang - hang; //获取当前页的第一行下标
int last = pageIndex * hang; //获取当前页的最后一行下标+1
if (last > pages.size()) last = pages.size();
List<T> page = new ArrayList<T>();
for (int s = fist; s < last; s++) {
page.add(pages.get(s));
}
this.pages = page; //分页数据
this.totalCount = pages.size(); //总行数
this.pageIndex = pageIndex; //当前页
this.totalPages = (int) Math.ceil((float) pages.size() / hang); //总页数
}
}
@Autowired
private BookCategoryService bookCategoryService;
@RequestMapping("/index")
public String findAll(@RequestParam(name ="pageNo" ,defaultValue = "1") int pageNo,Model model){
/* List<Books> all = booksService.findAll();
System.out.println("all = " + all);*/
List<BookCategory> main = bookCategoryService.findMain();
model.addAttribute("All",main);
List<BooksVo> byIdddd = booksService.findByIdddd();
PageUtils<BooksVo> page = new PageUtils<>(pageNo,3,byIdddd);
int pageIndex = page.getPageIndex();//当前页
model.addAttribute("dangqian",pageIndex);
long totalCount = page.getTotalCount();//总行数
System.out.println("总行数 = " + totalCount);
int totalPages = page.getTotalPages();//总页数
model.addAttribute("yeshu",totalPages);
List<BooksVo> pages = page.getPages();//每页数据
model.addAttribute("pageInfo",page);
model.addAttribute("msg",pages);
return "index";
}
<a href="/index" id="first" >首页</a>
<a href="/index?pageNo=${dangqian-1}" id="prePage" name="prePage" >上一页</a>
<a href="/index?pageNo=${dangqian+1}" id="nextPage" name="nextPage">下一页</a>
<a href="index?pageNo=${yeshu}" id="mo">末页</a>
<a>第</a><a id="current">${dangqian}</a><a>页</a>
<a>共</a><a id="allpage">${yeshu}</a><a>页
下面为在第一页时隐藏首页和第一页js实现
var current=document.getElementById('current').innerText
console.log(current);
var allpage=document.getElementById('allpage').innerText
console.log(allpage);
if (current<2){
document.getElementById("first").style.visibility="hidden";
document.getElementById("prePage").style.visibility="hidden";
}
if (allpage===current){
document.getElementById("nextPage").style.visibility="hidden";
document.getElementById("mo").style.visibility="hidden";
}
配合jsp分页实现