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))}">«上一页</a></li>