实现分页时遇见的bug

在做分页功能时,为了实现点击下一页就能跳转到下一页的功能时遇见了一些bug

最开始的时候直接调用Page.getPageNumber()方法获取当前页码,然后加1,完成下一页的功能,这一步没有问题,运行完美

<a href = "/index?pageNumber=#(blogPage.getPageNumber()+1)">下一页</a>

逐步完善的过程中,想做写一个#if() #else #end 语句进去判断一下是否最后一页,但是报错了,请问我应该怎么写这个if语句才能实现我的想法   以下是我的代码及报错



<td><a href = "/index?pageNumber=#if(#(blogPage.getPageNumber()+1)>#(blogPage.getTotalPage()))#(blogPage.getTotalPage()) #else (#(blogPage.getPageNumber()+1)) #end">下一页</a></td>


[ERROR]-[Thread: qtp474675244-21]-[com.jfinal.core.ActionHandler.handle()]: /index?pageNumber=1

com.jfinal.template.stat.ParseException: #if parameter exists illegal char: '#'

Template: "/66/33/nscnb2.html". Line: 33

at com.jfinal.template.stat.Lexer.scanPara(Lexer.java:278)

at com.jfinal.template.stat.Lexer.scanDire(Lexer.java:160)

at com.jfinal.template.stat.Lexer.scan(Lexer.java:60)

at com.jfinal.template.stat.Parser.parse(Parser.java:89)

at com.jfinal.template.Engine.buildTemplateBySourceFactory(Engine.java:158)



在波总的指导下修改了代码,#if()#else#end语句应该没有错误,但是依然报错,修改后的代码及报错如下,:

<a href ="/index?pageNumber=#if((blogPage.getPageNumber()+1)>blogPage.getTotalPage()) blogPage.getTotalPage() #else (blogPage.getPageNumber()+1) #end"> 下一页 </a>


[ERROR]-[Thread: qtp474675244-18]-[com.jfinal.core.ActionHandler.handle()]: /index?pageNumber=(blogPage.getPageNumber()+1)

com.jfinal.core.ActionException: Can not parse the parameter "(blogPage.getPageNumber() 1)" to Integer value.

at com.jfinal.core.Controller.toInt(Controller.java:279)

at com.jfinal.core.Controller.getParaToInt(Controller.java:289)

at nsc66.controller.IndexController.index(IndexController.java:21)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)


评论区

JFinal

2018-08-14 17:24

将 #if(...) 指令小括号中出现的字符 # 全部去掉即可

指令小括号内是纯正的表达式,容不得半点字符 #

字符 # 仅用于指令名的前缀,不能用于参数中,参数是纯表达式

JFinal

2018-08-14 17:25

例如:
#if( #(blogPage.getPageNumber) ) 改成:
#if( blogPage.getPageNumber )

小括号内的字符 # 连同它的一对小括号一起去除最好

猛男来了耶

2018-08-14 18:01

@JFinal 改成这样也报错 下一页

2018-08-14 18:00:31
[ERROR]-[Thread: qtp474675244-20]-[com.jfinal.core.ActionHandler.handle()]: /index?pageNumber=(blogPage.getPageNumber()+1)
com.jfinal.core.ActionException: Can not parse the parameter "(blogPage.getPageNumber() 1)" to Integer value.
at com.jfinal.core.Controller.toInt(Controller.java:279)
at com.jfinal.core.Controller.getParaToInt(Controller.java:289)
at nsc66.controller.IndexController.index(IndexController.java:21)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)

猛男来了耶

2018-08-14 18:07

@猛男来了耶 代码贴不上什么鬼

猛男来了耶

2018-08-14 18:08

@JFinal href ="/index?pageNumber=#if((blogPage.getPageNumber()+1)>blogPage.getTotalPage()) blogPage.getTotalPage() #else (blogPage.getPageNumber()+1) #end"> 下一页

JFinal

2018-08-14 21:47

@猛男来了耶 这是一个新问题,在原有贴子上修改,贴出异常来即可解决,回复不支持 html 内容

猛男来了耶

2018-08-15 10:54

@JFinal 波总,帖子修改好了,你再帮我看一下

猛男来了耶

2018-08-15 10:55

热门反馈

扫码入社