SSH整合时,底层的baseDao分页查询方法会执行两次,搞得我当前页变回第一页,为什么会查询两次,怎么解决?
本来写了一个分页,我在第二页删除或者修改后,我让当前页停留在第二页,但是始终不能停留在第二页,后来我debug发现底层baseDao中分页查询方法执行了两遍。郁闷了我好久...
本来写了一个分页,我在第二页删除或者修改后,我让当前页停留在第二页,但是始终不能停留在第二页,后来我debug发现底层baseDao中分页查询方法执行了两遍。郁闷了我好久!
@SuppressWarnings("unchecked")
//action调用此方法
public void pageUtils(HttpServletRequest request) throws GeneralException {
String currentPages = request.getParameter("currentPage");
int currentPage = 1;
int pageSize = 10;
int totalCount = commService.getCommTotalCount(Comm.class);
if (currentPages != null && currentPages != "") {
currentPage = Integer.parseInt(currentPages);
}
Page page = new Page();
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setTotalCount(totalCount);
page.setTotalPage(totalCount);
request.setAttribute("commList", commService.getCommList(Comm.class, pageSize, currentPage, "attrCode", ""));
request.setAttribute("page", page);
} 展开
@SuppressWarnings("unchecked")
//action调用此方法
public void pageUtils(HttpServletRequest request) throws GeneralException {
String currentPages = request.getParameter("currentPage");
int currentPage = 1;
int pageSize = 10;
int totalCount = commService.getCommTotalCount(Comm.class);
if (currentPages != null && currentPages != "") {
currentPage = Integer.parseInt(currentPages);
}
Page page = new Page();
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setTotalCount(totalCount);
page.setTotalPage(totalCount);
request.setAttribute("commList", commService.getCommList(Comm.class, pageSize, currentPage, "attrCode", ""));
request.setAttribute("page", page);
} 展开
展开全部
一点代码都看不到,怎么能知道你为什么执行了两次呢,在所有的类里都设断点看执行过程不就知道从哪进入了两次dao了吗
看代码最有可能的是连续访问了两次action,而且第二次request里没有currentPage,所以页码一直是初始的int currentPage = 1;
还有if (currentPages != null && currentPages != "") 这判断是有问题的,字符串判断要写成!"".equals(currentPages),不然你得不到想要的结果,也有可能会影响页码赋值
看代码最有可能的是连续访问了两次action,而且第二次request里没有currentPage,所以页码一直是初始的int currentPage = 1;
还有if (currentPages != null && currentPages != "") 这判断是有问题的,字符串判断要写成!"".equals(currentPages),不然你得不到想要的结果,也有可能会影响页码赋值
追问
String currentPages = request.getParameter("currentPage");
这句话接收了当前页,所以不会一直是1,我也debug了,
至于currentPages!=""可能是要换成.equals,但传过来的当前页只会是null,这句也没影响到查询两次,不知道为什么,我跟朋友一样的方法,但我的就是调用两次查询语句(用debug清楚的看了),导致当前页变回1
追答
你不光要知道调用了两次查询,还得知道是从什么地方开始调用了两次,是service还是整个action被调用了两次。
既然你的效果是会当前页变回1,那就是有一次currentPages为null导致currentPage没改变初值,当然要从这次null是怎么出现的着手,你目前的代码是看不出为什么会出现一次request.getParameter currentPages为null
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询