购物车搜索栏解决GET请求中文乱码问题
来源:互联网 发布:nginx 进程模型 编辑:程序博客网 时间:2024/06/08 06:45
昨天安排开发新功能,在购物车中加入搜索栏,搜索购物车中的商品是否存在,买了多少。。。。当时想想就觉得使用这商城的人都是土豪啊。。。购物车买的东西都不知道有多少,还需要增加搜索栏进行搜索。。。。没想那么多,就开始开发吧。
前端页面基本写完,想着地址栏里面没有参数,想着应该是发送的post请求吧,使用ajax传入中文应该轻轻松松,但是一看后台,我靠。。。
//获取购物车订单@RequestMapping(value="/getOrder", method=RequestMethod.GET)public String list(HttpServletRequest request,HttpSession session){Agent agent= (Agent) session.getAttribute("agent");//取出购物车List<Cart> list=cartService.finCart(agent.getId()); Map<String,Cart> map=new HashMap<String, Cart>(); for(Cart dic:list){ map.put(dic.getGoods_id(), dic); } //Map<String,Object> map = null;if(map != null){//生成订单编号String order_num="YCF"+DateUtil.formatDate(new Date(), "yyyyMMddHHmmssSSS");request.setAttribute("order_num",order_num);request.setAttribute("carts", map);request.setAttribute("cartsCount", map.size());}else {request.setAttribute("cartsCount", 0);}session.setAttribute("productNums",GoodsController.getCartsProNums(cartService,session));return "shop/order/cart.jsp";}竟然发送的是GET请求,前台使用的是EL表达式和jstl标签进行的显示效果。。。。而且后台的MAP传入前台影响了排序。。。真不知道之前这个功能是怎么设计的。。。心中一万匹草泥马跑过。。。。
也不多想了。。。改吧。。。
首先前台JavaScript中使用encodeURIComponent()对中文进行处理,对于此函数encodeURIComponent()和escape,encodeURI的区别请参照如下地址:
http://blog.csdn.net/yaoyao9565/article/details/50953040
前台页面为:
//点击搜索查看购物车的商品$(".search-btn").click(function(){var goods_name = $("#goods_name").val();if(goods_name!=""&&goods_name!=null) {window.location.href=$("#basePath").val() + "/shop/orders/getOrder.do?goods_name="+encodeURIComponent(encodeURIComponent(goods_name));}});
然后后台接受进行相应的处理:
goodsName=java.net.URLDecoder.decode(goodsName,"UTF-8");这样就不必改tomcat配置或者进行ISO885921转码来得那么被动了。测试没有问题。在购物车中我添加了flag开关是用于查明使用搜索条件后list的size是否为0的情况,因为前台使用的是jstl加EL表达式判断而展现不同的DIV的,增加了搜索条件后展示层也需要跟着变动更改后的后台代码为:
//获取购物车订单@RequestMapping(value="/getOrder", method=RequestMethod.GET)public String list(HttpServletRequest request,HttpSession session){Agent agent= (Agent) session.getAttribute("agent");String goodsName = request.getParameter("goods_name");List<Cart> list = null;//用于判断搜索查询条件情况下list.size()是否为0的情况,为0则将flag设置为false,用于前台显示全部列表问题boolean flag = true;try {if(StringUtil.isNotEmpty(goodsName)) {goodsName=java.net.URLDecoder.decode(goodsName,"UTF-8");list = cartService.findCartByGoodsName(agent.getId(), goodsName);if(list.size() == 0) {flag = false;}} else {//取出购物车list = cartService.finCart(agent.getId());}//Map<String,Cart> map=new HashMap<String, Cart>(); // for(Cart dic:list){ // map.put(dic.getGoods_id(), dic); // } //Map<String,Object> map = null;//if(map != null){if(list.size() > 0){//生成订单编号String order_num="YCF"+DateUtil.formatDate(new Date(), "yyyyMMddHHmmssSSS");request.setAttribute("order_num",order_num);//request.setAttribute("carts", map);//request.setAttribute("cartsCount", map.size());request.setAttribute("carts", list);request.setAttribute("cartsCount", list.size());} else if(flag) {request.setAttribute("cartsCount", 0);} else {//搜索查询条件情况下list.size()为0,则给出链接可以进入完整购物车订单列表request.setAttribute("cartsCount", -1);}session.setAttribute("productNums",GoodsController.getCartsProNums(cartService,session));} catch (UnsupportedEncodingException e) {log.error(e.getMessage(), e);e.printStackTrace();TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}return "shop/order/cart.jsp";}
1 0
- 购物车搜索栏解决GET请求中文乱码问题
- get请求传递中文,解决乱码问题
- 解决Get请求中文乱码的问题
- GET请求中文乱码问题--已解决
- 如何解决GET请求中文乱码问题?
- 解决get请求中文乱码问题
- get请求中文乱码问题
- get请求中文乱码问题
- get请求中文乱码问题
- get 请求中文乱码问题
- jboss get请求中文乱码问题的解决[zt]
- 使用filter解决get请求中文乱码问题
- 解决GET请求时中文乱码的问题
- SpringMVC 解决GET请求时中文乱码的问题
- SpringMVC解决GET请求时中文乱码的问题
- 解决Get和Post请求中中文乱码问题
- SpringMVC解决GET请求时中文乱码的问题
- 解决Get和post请求中中文乱码问题
- table css 控制
- 数组指针 vs 指针数组
- 原生TabLayout实现ViewPagerIndicator
- concurrent包
- 微信公众帐号开发教程第12篇-图文消息全攻略
- 购物车搜索栏解决GET请求中文乱码问题
- 最近学习的总结
- 集训队专题(10)1000 敌兵布阵
- C/C++,Java,PHP,JavaScript,Json数组、对象赋值时,最后一个元素后面是否可以带逗号?
- java类加载机制
- centos linux 安装PHP+APACE +MYSQL
- Eclipse安装反编译工具查看Jar包源码
- 安装和运行assets目录下的Apk
- Python 数据结构与算法——deque