旅游线路查询-参数传递、后台代码
参数传递
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()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix