JAVA_OA(十四):SSM练手项目bug-Oracle分页web页面无法转到下一页

时间:2021-12-28 16:35:58

一个查询页面,默认是显示全部用户,可以模糊查询一下某个关键字词,但是查询结果却只能显示第一页,一旦点击下一页,就会跑到默认的页面的第二页.这个原因jsp页面每次点击都会重新get请求的原因,再点击的时候又做了默认页面的请求!(确实很2逼的错误,但是还是Mark一下,以免以后再出这种乌龙,至于出错的背景恐怕才是很有意思的地方,这是我在tz网校上课后写的,实际上这是老师故意留的的问题等到下次课在指出来给大家讲,但是我第一次凭记忆写的时候以及听课的时候却根本没发现这个问题,知道自己写完了测试了,才发现问题.或许身为一个程序创造者,我还差点警觉吧.)

JAVA_OA(十四):SSM练手项目bug-Oracle分页web页面无法转到下一页

JAVA_OA(十四):SSM练手项目bug-Oracle分页web页面无法转到下一页


//默认的清单做的请求为
toList.do?page=${page-1}&pname=''

//执行的sql也就是
select * from (
select rownum n,t.*
from adminuser t
where
rownum<7 and state='1' and usernickname like '%%') d
where d.n>0

效果刚出来也是一脸蒙蔽,不太明白怎么回事,后来看了看jsp页面才发现问题所在


<p>
<a style="margin-left: 300px; cursor: pointer;" href="toList.do?page=1">首页</a>
<c:if test="${page==1}">
<a style="cursor: pointer">上一页</a>
</c:if>
<c:if test="${page>1}">
<a style="cursor: pointer" href="toList.do?page=${page-1}" >上一页</a>
</c:if>
<c:if test="${page==totalPage}">
<a style="cursor: pointer" >下一页</a>
</c:if>
<c:if test="${page<totalPage}">
<a style="cursor: pointer" href="toList.do?page=${page+1}">下一页</a>
</c:if>
<a style="cursor: pointer" href="toList.do?page=${totalPage}">尾页</a>
共${totalPage}页,现在是第${page}页
</p>

// 这他妈不就是每次换页都重新请求了一次吗,我居然一直没发现.不过发现了也就好说了,存一下原来查询的条件就好啦
//所以在原来存结果的model里存了这个,然后又改了jsp页面--->ok!
model.addAttribute("name",name);

<p>
<a style="margin-left: 300px; cursor: pointer;" href="toList.do?page=1&pname=${name}">首页</a>
<c:if test="${page==1}">
<a style="cursor: pointer">上一页</a>
</c:if>
<c:if test="${page>1}">
<a style="cursor: pointer" href="toList.do?page=${page-1}&pname=${name}" >上一页</a>
</c:if>
<c:if test="${page==totalPage}">
<a style="cursor: pointer" >下一页</a>
</c:if>
<c:if test="${page<totalPage}">
<a style="cursor: pointer" href="toList.do?page=${page+1}&pname=${name}">下一页</a>
</c:if>
<a style="cursor: pointer" href="toList.do?page=${totalPage}&pname=${name}">尾页</a>
共${totalPage}页,现在是第${page}页
</p>

总结一下:其实写程序里的bug不仅仅是程序自身缺陷,语法特征,技术细节,逻辑那些东西,恐怕还有一颗不认真的心吧.