springboot处理分页遇到的异常

Caused by: org.attoparser.ParseException: Cannot execute subtraction: operands are "null" and "1" (template: "adminMainPage" - line 121, col 44)
	at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)
	at org.attoparser.MarkupParser.parse(MarkupParser.java:257)
	at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)
	... 48 more

引起的原因是:

下一页的超链接地址没有问题,但是上一页的超链接地址导致页面渲染出错

以下是处理分页的代码:

@GetMapping(value ={"/testGetUserByConditionIf"} )
    public String testGetUserByConditionIf(@Param("name") String name,
                                           @Param("identityCode") String identityCode,
                                           @Param("examTitle") String examTitle,
                                           @Param("subordinateDepartments") String subordinateDepartments,
                                           @Param("classNumber") String classNumber,
//                                           @PathVariable(value = "pageNum") Integer pageNum,
                                           @RequestParam(defaultValue = "1", value = "pageNum") Integer pageNum,
                                           Model model) throws IOException {
        SqlSessionFactory ssf = Tools.getSqlSessionFactory("mybatis\\mybatis-config.xml");
        SqlSession session = ssf.openSession();

        try {
            inputExcelMapper dsm = session.getMapper(inputExcelMapper.class);
            log.info("dsm.toString():"+dsm.toString());
            log.info("准备获取iE...........");
            inputExcel iE = new inputExcel(name,identityCode,examTitle,subordinateDepartments,classNumber);
            log.info("成功获取iE...........");
            log.info("IE:"+iE.toString());
            log.info("准备获取userByConditionIf...........");
            List<inputExcel> userByConditionIf = dsm.getUserByConditionIf(iE);

            log.info("成功获取userByConditionIf...........");
            log.info("userByConditionIf:"+userByConditionIf.toString());

//            发送json数据到前端,用于导出excel表
            ObjectMapper mapper = new ObjectMapper();
            String json = mapper.writeValueAsString(userByConditionIf);
            model.addAttribute("json",json);


//            model.addAttribute("userByConditionIf",userByConditionIf);

//            pageNum=1;
            pageUtil.page(pageNum,model,userByConditionIf.size(),userByConditionIf);



            session.commit();
        } finally {
            session.close();

        }
            return "adminMainPage";
        }

    }
 public String page(Integer pageNumber, Model model,int totalcount,List userByConditionIf){

        Integer spPage=pageNumber;
        //设置每页条数
        int pageSize=10;
        //页数,对页数进行判断设置
        int pageNo=0;
        if (spPage==null){
            pageNo=1;
        }else {
            pageNo=spPage;
            if (pageNo<1){
                pageNo=1;
            }
        }
        //设置首页
        int minPage=1;
        //设置最大页数
        int totalCount=totalcount;    //获取总条数
        int maxPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
        if (pageNo>maxPage){
            pageNo=maxPage;
        }

        try {
            //分页查询
            List<inputExcel> list = userService.findUserPage(pageNo,pageSize);

            model.addAttribute("pageList",list);
            model.addAttribute("pageNo",pageNo);

            ObjectMapper mapper = new ObjectMapper();
            String pageListJson = mapper.writeValueAsString(list);
            model.addAttribute("pageListJson",pageListJson);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "adminMainPage";
    }

解决方案

 <li><a  id="forthPage" th:href="@{/testGetUserByConditionIf(pageNum=${pageNo}+(1-2))}">&laquo;上一页</a></li>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值