建议使用MP就不要使用jsp,可以使用类似elementui之类的自带分页插件的前端工具。
如果你和我一样头铁非要用,那么分页的时候你就会发现
JSP中有提示,但是运行的时候一定会报错。
通过查看后台报错原因,看一下Page源代码。
/**
* 查询数据列表
*/
private List<T> records = Collections.emptyList();
/**
* 总数,当 total 不为 0 时分页插件不会进行 count 查询
*/
private long total = 0;
/**
* 每页显示条数,默认 10
*/
private long size = 10;
/**
* 当前页
*/
private long current = 1;
/**
* <p>
* SQL 排序 ASC 数组
* </p>
*/
private String[] ascs;
/**
* <p>
* SQL 排序 DESC 数组
* </p>
*/
private String[] descs;
/**
* <p>
* 自动优化 COUNT SQL
* </p>
*/
private boolean optimizeCountSql = true;
上面这些属性是Page中有的,我们可以看到没有pages属性,MP的pages是一个方法
/**
* <p>
* 当前分页总页数
* </p>
*/
default long getPages() {
if (getSize() == 0) {
return 0L;
}
long pages = getTotal() / getSize();
if (getTotal() % getSize() != 0) {
pages++;
}
return pages;
}
而我们写EL表达式的时候通过“点”的方式相当于调用了这个属性的get方法,但是在Page中没有这个方法,所以自然会报错。
如果你还是想要使用MP来进行分页,你可以创建一个类,继承Page,生成两个属性,一个类型是List的属性和一个存放pages的long属性,此时pages最好不好重名,不然会实现父类中的getPages()方法。
接下来就是给List中存放所有的页数,从1-n,以及在pages属性中存放pages的值。就可以进行遍历了。