SpringMVC分页显示效果与配置不匹配的原因

原因:先查数据,才配置分页

解析: 逻辑上来说需要先配置分页再去查找数据数据,才能根据分页配置去查找数据及可实现分页效果(分页原理:如设置查几条,从哪条开始查)

如果先查数据了,那么就是查询所有数据,自然分页限制查询就没有效果。

例:controller接收mapping:

// 获取所有员工,分页后显示到list页面
@RequestMapping(value = "/emps/{pageNum}", method = RequestMethod.GET)
public String getAllEmp(Map<String, Object> map, @PathVariable("pageNum") Integer pageNum, HttpServletRequest request) {
	// 分页配置
	PageHelper.startPage(pageNum, 2);
	List<Emp> empList = service.getAllEmp();
	// 所有的员工信息
	PageInfo<Emp> pageInfo = new PageInfo<>(empList, 5);
	String page = PageUtil.getPageInfo(pageInfo, request);
	map.put("empList", empList);
	map.put("page", page);
	return "list";
}

pageUtil插件

**
 * 首页 上一页 1 2 3 4 5 下一页 末页
 *
 */
public class PageUtil {

	public static String getPageInfo(PageInfo<Emp> pageInfo, HttpServletRequest request) {

		String path = request.getContextPath() + "/";
		StringBuilder builder = new StringBuilder();

		// 拼接首页
		builder.append("<a href='" + path + "emps/1'>首页</a>");
		builder.append("&nbsp;&nbsp;");

		// 拼接上一页
		if (pageInfo.isHasPreviousPage()) {
			builder.append("<a href='" + path + "emps/" + pageInfo.getPrePage() + "'>上一页</a>");
			builder.append("&nbsp;&nbsp;");
		} else {
			builder.append("上一页");
			builder.append("&nbsp;&nbsp;");
		}

		// 拼接页码
		int[] nums = pageInfo.getNavigatepageNums();
		for (int i : nums) {
			if (i == pageInfo.getPageNum()) {
				builder.append("<a style='color:red;' href='" + path + "emps/" + i + "'>" + i + "</a>");
				builder.append("&nbsp;&nbsp;");
			} else {
				builder.append("<a href='" + path + "emps/" + i + "'>" + i + "</a>");
				builder.append("&nbsp;&nbsp;");
			}
		}

		// 拼接下一页
		if (pageInfo.isHasNextPage()) {
			builder.append("<a href='" + path + "emps/" + pageInfo.getNextPage() + "'>下一页</a>");
			builder.append("&nbsp;&nbsp;");
		} else {
			builder.append("下一页");
			builder.append("&nbsp;&nbsp;");
		}

		// 拼接尾页
		builder.append("<a href='" + path + "emps/" + pageInfo.getPages() + "'>尾页</a>");
		builder.append("&nbsp;&nbsp;");

		return builder.toString();

	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值