首页 > 其他分享 >《黑马旅游网》综合案例(七)旅游线路分页展示后台代码

《黑马旅游网》综合案例(七)旅游线路分页展示后台代码

时间:2022-08-25 14:44:59浏览次数:72  
标签:pageSize cid int PageBean public 旅游网 后台 currentPage 黑马

旅游线路分页展示

类别id传递

header.html:中拿到cid

            //遍历数组
            for (var i = 0; i <data.length; i++) {
                var li = '<li><a href="route_list.html?cid='+data[i].cid+'">'+data[i].cname+'</a></li>';
                lis+=li;
            }

 

 CategoryServiceImpl:进行修改缓存中的cid

 

 

 

 route_list.html:即可获取到cid

    <script>
        $(function () {
            var search = location.search;
            //切割字符串,拿到第二个值
            var cid = search.split("=")[1];
            alert(cid);
        });
    </script>

 根据id查询不同类别的旅游线路数据

分析:

route_list.html:

加上:

在domain包中创建:PageBean对象

public class PageBean<T> {
    private int totalCount;//总记录数
    private int totalPage;//总页数
    private int currentPage;//当前页码
    private int pageSize;//每页显示条数
    private List<T> list;//每页显示的数据集合
    //get,set
}

代码实现:

RouteDao:编写两个方法

public interface RouteDao {
    /**
     * 根据id查询总记录数
     * @param cid
     * @return
     */
    public int findTotalCount(int cid);

    /**
     * 根据cid,start,pageSize查询当前页的数据集合
     * @param cid
     * @param start
     * @param pageSize
     * @return
     */
    public List<Route> findByPage(int cid,int start,int pageSize);
}

RouteDaoImpl:实现

public class RouteDaoImpl implements RouteDao {
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public int findTotalCount(int cid) {
        String sql = "select count(*) from tab_route where cid = ?";
        return template.queryForObject(sql,Integer.class,cid);
    }

    @Override
    public List<Route> findByPage(int cid, int start, int pageSize) {
        String sql = "select * from tab_route where cid = ? limit ? , ?";
        return template.query(sql,new BeanPropertyRowMapper<Route>(Route.class),cid,start,pageSize);
    }
}

RouteService:

/**
 * 线路Service
 */
public interface RouteService {
    /**
     * 根据类别进行分页查询
     * @param cid
     * @param currentPage
     * @param pageSize
     * @return
     */
    public PageBean<Route> pageQuery(int cid,int currentPage,int pageSize);
}

RouteServiceImpl:

public class RouteServiceImpl implements RouteService {
    private RouteDao routeDao = new RouteDaoImpl();
    @Override
    public PageBean<Route> pageQuery(int cid, int currentPage, int pageSize) {
        //封装PageBean
        PageBean<Route> pb = new PageBean<Route>();
        //设置当前页码
        pb.setCurrentPage(currentPage);
        //设置每页显示条数
        pb.setPageSize(pageSize);
        //设置总记录数
        int totalCount = routeDao.findTotalCount(cid);
        pb.setTotalCount(totalCount);
        //设置当前页显示的数据集合
        int start = (currentPage - 1) * pageSize;//开始的记录数
        List<Route> list = routeDao.findByPage(cid,start,pageSize);
        pb.setList(list);
        //设置总页数 = 总记录数/每页显示条数
        int totalPage = totalCount % pageSize == 0 ? totalCount / pageSize : (totalCount / pageSize)+1;
        pb.setTotalPage(totalPage);

        return pb;
    }
}

RouteServlet:

@WebServlet("/route/*")
public class RouteServlet extends BaseServlet {
    private RouteService routeService = new RouteServiceImpl();
    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");
        //处理参数
        int cid = 0;//类别id
        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;
        }

        //调用Service查询PageBean对象
        PageBean<Route> pb = routeService.pageQuery(cid, currentPage, pageSize);
        //将PageBean对象序列化为json,返回
        writeValue(pb,response);
        
    }
}

访问一下:出现数据代表正确

 

 

搜索

复制

标签:pageSize,cid,int,PageBean,public,旅游网,后台,currentPage,黑马
From: https://www.cnblogs.com/pengtianyang/p/16623661.html

相关文章

  • 后台返回10万条数据时,用什么方法处理
    (1)1.主要技术是应用虚拟列表2 什么是虚拟列表虚拟列表就是只对可见区域进行渲染,对非可见区域中的数据不渲染或部分渲染,以实现减少消耗,提高用户体验的技术。它是长列表......
  • 综合案例-黑马旅游网_退出功能
    综合案例-黑马旅游网_退出功能实现步骤:访问sevlet将session销毁跳转到登录页面代码实现前端代码<!--头部start--><script>$(function(){$.ge......
  • 综合案例-黑马旅游网_登录功能
    综合案例-黑马旅游网_登录功能分析   实现_Loginservletpackagecom.bai.web.servlet;importcom.bai.domain.ResultInfo;importcom.bai.domain.User;impor......
  • 【FAQ】【弹窗问题】关于后台弹窗问题
    关于后台弹窗问题为保护用户使用华为手机过程中,不受三方应用随意后台弹窗打扰。我们增加了“后台弹窗”权限,该权限关闭时应用在后台弹出界面的能力会受到限制,除非用户手动......
  • dlvm-netcore开源框架后台管理
    前言现在的程序开发人员大部分都不会自己去从零开发一个系统了,基本都是在使用一些免费的框架或破解一些有用的功能来自己二次开发组合使用,一般要达到要求是几个框架的功能......
  • 综合案例-黑马旅游网_邮件功能
    综合案例-黑马旅游网_邮件功能为了保证用户填写的邮箱事正确的将来可以推广一些宣传信息到用户邮箱中所有我们才需要邮件功能发送邮件代码packagecom.bai.util;i......
  • 怎么让 Linux 进程在后台运行
    1.命令简介nohup的作用可以将程序以忽略挂起信号(SIGHUP)的方式运行。常见的用法是和&命令一同使用,将命令放置到后台运行,即使终端挂掉,进程会忽略挂起信号,继续运行。将程......
  • 《黑马旅游网》综合案例(四)登录功能
    登录功能分析:  Servlet层:@WebServlet("/loginServlet")publicclassLoginServletextendsHttpServlet{protectedvoiddoPost(HttpServletRequestreques......
  • 综合案例-黑马旅游网_异步提交表单和servlet代码实现
    综合案例-黑马旅游网_异步提交表单在此使用异步提交表单是为了获取服务器响应的数据因为前台使用的是html作为视图层不能够直接从servlet相关的域对象获取值只能通过aj......
  • 综合案例-黑马旅游网注册功能分析和表单校验
    综合案例-黑马旅游网注册功能分析图解  综合案例-黑马旅游网注册功能_表单校验表单校验功能用户名:单词字符长度8到20位密码:单词字符长度8到20位email:邮件格式......