众所周知,在JavaScript中,Location 对象的 search 属性用于设置或取得当前 URL 的查询字串(? 符号及后面的部分)
例如:页面地址为如下:
http://localhost:8080/ycf/admin/product/search.do?pageInfo={pageIndex:3,pageSize:10,totalRowNum:813}&name=&code=&isShelves=&startMarketValue=&endMarketValue=&classId=&id=T327
则在js代码中alert(location.search);则会弹出的内容为:?pageInfo={pageIndex:3,pageSize:10,totalRowNum:813}&name=&code=&isShelves=&startMarketValue=&endMarketValue=&classId=&id=T327
不知道大家在项目中会不会遇到这种问题,将一个对应页面的参数进行传递,传递到若干个页面后需要再次获取这些传递的值,可能说的不是很明白,举个例子吧,例如:
我现在所做的商城系统,用户进入收银台准备进行订单消费支付——点击确认按钮后(生成订单号,购买的商品清单等等)——输入会员账号、密码(发现账号为初次使用,未激活)——跳转到账号激活页面——输入账号——查找到对应绑定的手机号码——发送验证码到对应的手机——输入验证码——激活账号——激活成功则再次跳转到初次的订单确认付款页面,在此页面,需要将之前生成订单号,购买的商品清单等等这些信息重新传过来,这个就是我所说需要用到location.search的地方了。
因为觉得这些信息的重要性不是很大,没必要发送post密文进行传输,所以在一开始我用到的是get请求则使用的方式是:
A页面(发送GET请求)传入——B页面(使用location.search获取?以及后面的内容)传入——C页面(使用location.search获取?以及后面的内容)传入——D页面(获取请求)
中间的几个页面不需要获取,则只使用
window.location.href="toUpdate.do" + location.search;
的方式就可以了,知道需要获取的时候,再在后台进行获取:
//消费单号
String xfno=request.getParameter("xfno");
String bllPayMaxValue = request.getParameter("bllPayMaxValue");
这个是我发现location.search的妙用,不知道对大家有没有灵感帮助呢?