分页查询时条件丢失处理-使用url进行传参

问题描述:分页查询带条件时,当单击超链接比如下一页,上一页后查询的条件丢失,于是使用了url传参的方式。感觉这个方式比较简单。当然在网上看到还有还有get方式设置url,和post设置隐藏标签的方式,感觉不适用,就没用这个。
然后在利用url传参时遇到了url传递中文参数非法问题
这里写图片描述

**解决方案

**方案一
修改tomcat的server.xml****

URIEncoding="UTF-8" 
useBodyEncodingForURI="true"
 修改为 <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

**方案二,推荐
将要传递的参数加密后再传过去**

 nameUrl=URLEncoder.encode(book.getName(),"UTF-8");
 request.put("nameUrl",nameurl);
 jsp页面:
 <a href="queryBook.action?currentPage=<s:property value="page.currentPage+1"/>&name=<s:property value="#request.nameUrl"/>">下一页</a>

这样防止了参数解析异常,也提高了信息的安全性,比如在地址栏中看到的是经过处理后的字符串,不过还是可以解码哈
**方案三
使用url标签生成Url**

<s:url value="queryBook.action" id="u1">
        <s:param name="currentPage" value="page.currentPage+1"/>
        <s:param name="name" value="#session.name"/>
</s:url>
<a href="%{#u1}">下一页</a>

具体的分页实现具体的可以看我的gitHub:
https://github.com/flower-you/SSH/blob/SpringHibernate/BookShop_sh/src/main/java/xaut/wjh/dao/BaseDaoImpl.java
一个很好用的分页公式
//根据记录数计算总页数
int totalPages=(totalRecords+page.getPageSize()-1)/page.getPageSize();//例如:pageSize为5, (21+4)/5=5,(24+4)/5=5;(20+4)/5=4,(25+4)/5=5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值