JavaWeb-旅游网-线路搜索

JavaWeb-旅游网-注册和登录
JavaWeb-旅游网-导航条和分页展示
JavaWeb-旅游网-详情展示
JavaWeb-旅游网-点击收藏
功能: 用户在框搜索输入想去的地址,页面显示对应地址的旅游线路
在这里插入图片描述
可以采用模糊查询完成该功能,后台接收到cid和rname后,对数据库进行模糊查询,随后把数据封装成json格式响应个前端,前端解析数据并展示。

在上一个分页的展示数据的基础上进行拓展,加入rname参数,在获取rnam参数时需要对其解码,否则拿到的是乱码

           // var search = location.search;
           // var cid = search.split("=")[1];
            var cid = getParameter("cid");
            var rname = getParameter("rname");
            if (rname){
                //对rname进行解码
                rname = window.decodeURIComponent(rname);
            }
            //如果当前是首页的话,cid设置为0
            if (cid == "null"){
                cid = 0;
            }
           load(cid,null,rname);
        });
   //搜索功能
        $("#search-button").click(function () {
            var rname = $("#search_input").val();
            //获得当前的旅游种类的cid
            var cid = getParameter("cid");
            location.href="http://localhost/travel/route_list.html?cid="+cid+"&rname="+rname;
        })

前端的数据解析和展示与之前分页数据展示相同,这里就不在赘述了,直接讲后台的查询
后台要做的就是,如何判断该进行带cid和rname的查询还是不带。代码如下,判断中有个 “null”.equals(rname) 这是因为rname没有值时,再获取rname,JavaScript会给它一个null,这个不是空null而是字符串的"null"


    /**
     * 查收数据总数
     * @param cid
     * @param rname
     * @return
     */
    @Override
    public int findTotalCount(int cid,String rname) {
//        String sql = "select count(*) from tab_route where cid = ?";
        String sql = "select count(*) from tab_route where 1=1 ";
        StringBuilder sb = new StringBuilder(sql);
        List params = new ArrayList();
        if(0 != cid){
            //如果当前的页面种类不上首页就加上cid
            sb.append(" and cid = ?");
            params.add(cid);
        }
        //如果rame不为空或者不为null就加上rname进行模糊查询
        if (null != rname && rname.length()>0 && !"null".equals(rname)){
            sb.append(" and rname like ?");
            params.add("%"+rname+"%");
        }
        sql = sb.toString();
        return template.queryForObject(sql,Integer.class,params.toArray());

    }

    /**
     * 获取数据段
     * @param cid
     * @param start
     * @param pageSize
     * @param rname
     * @return
     */
    @Override
    public List<Route> findByPage(int cid, int start, int pageSize,String rname) {
//        String sql = "select * from tab_route where cid = ? limit ? , ?";
        String sql = "select * from tab_route where 1 =1 ";
        StringBuilder sb = new StringBuilder(sql);
        List params = new ArrayList();
        //如果当前的页面种类不上首页就加上cid
        if(0 != cid){
            sb.append(" and cid = ?");
            params.add(cid);
        }
        //如果rame不为空或者不为null就加上rname进行模糊查询
        if (null != rname && rname.length()>0 && !"null".equals(rname)){
            sb.append(" and rname like ?");
            params.add("%"+rname+"%");
        }
        //分页查询
        sb.append(" limit ? ,? ");
        sql  = sb.toString();
        params.add(start);
        params.add(pageSize);
        return template.query(sql,new BeanPropertyRowMapper<>(Route.class),params.toArray());
    }

查询到数据响应给前端解析展示即可

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lpepsi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值