分类数据展示功能
类别id传递
点击了不同的分类后将来看到的旅游线路不一样的。通过分析数据库表结构,发现
旅游线路表和分类表是一个多对一的关系
CategoryServiceImpl实现类:
public class CategoryServiceImpl implements CategoryService { private CategoryDao categoryDao = new CategoryDaoImpl(); @Override public List<Category> findAll() { // 1、从redis中查询 // 获取jedis客户端 Jedis jedis = JedisUtil.getJedis(); //可以使用sortedset排序查询 //Set<String> categorys = jedis.zrange("category", 0, -1); // 1.3查询sortedset中的分数(cid)和值(cname) Set<Tuple> categorys = jedis.zrangeWithScores("category", 0, -1); List<Category> cs = null; // 2、判断查询的集合是否为空 if (categorys == null || categorys.size()==0){ System.out.println("从数据库查询....."); // 3、如果为空,需要从数据库查询,再将数据存入redis //从数据库查询 cs = categoryDao.findAll(); // 将数据集合存储到redis中,category的key for (int i = 0; i < cs.size(); i++) { jedis.zadd("category",cs.get(i).getCid(),cs.get(i).getCname()); } }else { System.out.println("从redis查询....."); // 4、如果不为空,直接返回 cs = new ArrayList<>(); for (Tuple tuple : categorys) { Category category = new Category(); category.setCname(tuple.getElement()); category.setCid((int) tuple.getScore()); cs.add(category); } } return cs; } }
header.html类:
<script> $(function () { $.get("user/findOne",{},function (data) { var msg = "欢迎回来,"+data.name; $("#span_username").html(msg); }); $.get("category/findAll",{},function (data) { var lis = '<li class="nav-active"><a href="index.html">首页</a></li>'; // 遍历数组,拼接字符串 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; } lis+='<li><a href="favoriterank.html">收藏排行榜</a></li>'; // 将lis字符串,设置到ul的html内容中 $("#category").html(lis); }); }); </script>
route_list.html页面:
<script> $(function () { var search = location.search; // 切割字符串,拿到第二个值 var id = search.split("=")[1]; alert(id) }); </script>