小小编程之我见(2)---jsp页面如何对进行所查询出的结果再分页

Java 专栏收录该内容
72 篇文章 0 订阅

看到有人在解决对jsp页面如何对进行所查询出的结果再分页处理的问题的时候,在这里总结一下JSP页面如何对进行所查询的结果再分页,以及可能新手容易困惑的几个小问题,在这里进行探讨

①首先,JSP页面对进行所查询出的结果再分页,这种情况一般是出现在我们实际项目开发中,进行多条件联合查询,这就涉及到其中的拼写SQL语句,在这里暂时不讲解多条件下拼写SQL语句的问题.

②涉及到对JSP页面所查询的结果再分页,其最根本的原因就是参数传递的问题,如何把结果页面的参数传递到下一页,这才是处理问题的关键.下来讲解一下问题的实际处理解决

在这里假设 JSP页面是

              <form action = "listinfo.action" method="post" id="form2">

                          .........

              </form>

比如在用户点击确定以后,进行数据下拉框选择提交以后,程序运行到后台,通过SQL联合查询获取到最后我们需要的结果,但是,在前台页面对展示的结果进行下一页查询的时候,却发现所获取的数据丢失,这是什么原因呢?这是因为点击下一页的时候,请求参数丢失,所以设想一下,如果请求参数不丢失,问题是不是就解决了呢?

这里指出错误的写法:(这样的写法是丢失请求参数,会对当前所选择的请求参数作为下一页查询的时候,会造成当前请求参数丢失)


这里给出部分代码:这是JSP页面点击上一页(正确的写法,这里采用的是javascript,将当前页面所有请求参数加上请求页面参数,结果就正确)

这里是javascript里面:

这样就可以解决jsp页面如何对进行所查询出的结果再分页处理的问题.

③还有的人会发现,就是对结果页面再分页查询的时候,可以进行结果页面再分页,但是,出现的问题就是比如筛选的页面有20条,可以进行一条10页查询,本来两页就可以了,可是,总是可以进行点击下一页,即使下一页没有任何数据,这个问题是怎么产生的呢,大家可以看看他的代码;

        public String execute() throws Exception {
		orderList = dao.findDesCollectByCondition(page, 100, goodstype, goodstime, goodsprice);
		totalPages = dao.getTotalPages(100);
		return SUCCESS;
	}

 看出上面的错误了吗?
这是因为你的getTotalPages()方法也是没有多个参数进行联合查询 想解决这个问题,就应该采用以下方式 

         public String execute() throws Exception {
		orderList = dao.findDesCollectByCondition(page, 100, goodstype, goodstime, goodsprice);
		totalPages = dao.getTotalPages(100,goodstype, goodstime, goodsprice);
		return SUCCESS;
	}

 

这个问题才算真正解决


  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值