旅游线路查询-参数传递、后台代码

参数传递

header.html页面:

复制代码
复制代码
// 给搜索按钮绑定单击事件,获取搜索输入框的内容
        $("#search-button").click(function () {
            var rname = $("#search_input").val();
            var cid = getParameter("cid");
            // 跳转路径
            location.href = "http://localhost/travel/route_list.html?cid="+cid+"&rname="+rname;
        });
复制代码
复制代码

route_list.html页面:

复制代码
复制代码
$(function () {
            /*var search = location.search;
            // 切割字符串,拿到第二个值
            var cid = search.split("=")[1];*/
            // 获取cid的参数值
            var cid = getParameter("cid");
            // 获取rname的参数值
            var rname = getParameter("rname");
            // 判断rname不为null 或者 ""
            if (rname){
                rname = window.decodeURIComponent(rname);
            }
            alert(cid);
            alert(rname);

            // 当页面加载完成后,调用laod方法,发送ajax请求加载数据
            laod(cid)

        });

复制代码

复制代码

后台代码

RouteServlet类:

复制代码
复制代码
@WebServlet("/route/*")
public class RouteServlet extends BaseServlet {
    private RouteService routeService = new RouteServiceImpl();
    /**
     * 分页查找
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 接收参数
        String currentPageStr = request.getParameter("currentPage");
        String pageSizeStr = request.getParameter("pageSize");
        String cidstr = request.getParameter("cid");

        // 接收rname线路名称
        String rname = request.getParameter("rname");
        rname = new String(rname.getBytes("iso-8859-1"),"utf-8");

        int cid = 0;
        // 2、处理参数
        if (cidstr != null && cidstr.length()>0){
            cid = Integer.parseInt(cidstr);
        }
        int currentPage = 0;// 当前页码,如果不传递,则默认为第一页
        if (currentPageStr!=null && currentPageStr.length()>0){
            currentPage = Integer.parseInt(currentPageStr);
        }else {
            currentPage = 1;
        }
        int pageSize = 0;// 每页显示条数,如果不传递,默认每页显示5条记录
        if (pageSizeStr != null && pageSizeStr.length()==0){
            pageSize = Integer.parseInt(pageSizeStr);
        }else {
            pageSize = 5;
        }

        // 3、调用service查询pageBean对象
        PageBean<Route> pb = routeService.pageQuery(cid, currentPage, pageSize,rname);
        // 4、将pageBean对象序列化为json,返回
        writeValue(pb,response);
    }
}
复制代码
复制代码

 RouteServiceImpl:

复制代码
复制代码
public class RouteServiceImpl implements RouteService {
    private RouteDao routeDao = new RouteDaoImpl();

    @Override
    public PageBean<Route> pageQuery(int cid, int currentPage, int pageSize, String rname) {
        // 封装PageBean
        PageBean<Route> pb = new PageBean<>();
        // 设置当前页码
        pb.setCurrentPage(currentPage);
        // 设置每页显示条数
        pb.setPageSize(pageSize);

        // 设置总记录数
        int totalCount = routeDao.findTotalCount(cid,rname);
        pb.setTotalCount(totalCount);
        // 设置当前页显示的数据集合
        int start = (currentPage-1)*pageSize;
        List<Route> list = routeDao.findByPage(cid, start, pageSize,rname);
        pb.setList(list);

        // 设置总页数 = 总记录数/每页显示条数
        int totalPage = totalCount%pageSize==0 ? totalCount/pageSize : (totalCount/pageSize)+1;
        pb.setTotalPage(totalPage);

        return pb;
    }
}
复制代码
复制代码

RouterDao:

public interface RouteDao {
    // 根据cid查询总记录数
    public int findTotalCount(int cid,String rname);
    // 根据cid,start,pageSize查询页面的数据集合
    public List<Route> findByPage(int cid,int start,int pageSize,String rname);
}

 RouteDaoImpl:

复制代码
复制代码
public class RouteDaoImpl implements RouteDao {
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public int findTotalCount(int cid, String rname) {
//        String sql = "select count(*) from tab_route where cid = ?";
        // 定义sql模板
        String sql = "select count(*) from tab_route where 1=1";
        StringBuilder sb = new StringBuilder(sql);
        List params = new ArrayList();
        // 判断参数是否有值
        if (cid!=0){
            sb.append(" and cid = ? ");
            params.add(cid);
        }
        if (rname!=null && rname.length()>0){
            sb.append(" and rname like ? ");
            params.add("%"+rname+"%");
        }
        sql = sb.toString();
        System.out.println(sql);
        return template.queryForObject(sql, Integer.class, params.toArray());
    }

    @Override
    public List<Route> findByPage(int cid, int start, int pageSize, String rname) {
        //String sql = "select * from tab_route where cid = ? limit ?,?";

        // 定义sql模板
        String sql = "select * from tab_route where 1=1";
        StringBuilder sb = new StringBuilder(sql);
        List params = new ArrayList();
        // 判断参数是否有值
        if (cid!=0){
            sb.append(" and cid = ? ");
            params.add(cid);
        }
        if (rname!=null && rname.length()>0){
            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());
    }
}
复制代码
复制代码

 

posted @   想见玺1面  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示