商品分类信息一般是三级目录

查询一级商品的分类 parent_id=0
查询二级商品的分类 parent_id=1
查询三级商品的分类 parent_id=2
image.png

商品分类展现

EasyUI-tree格式封vo对象

image.png

业务逻辑

先查询一级菜单 树形结构在初始化时,不会传递任何信息
image.png

实现一级菜单展示

controller层
image.png
service层

public interface ItemCatService {
 //通过ID查询
 ItemCat findItemCatById(long itemCatId);
 List<EasyUiTree> findAll(long parentId);
}

serviceImpl层

@Override
public List<EasyUiTree> findAll(long parentId) {
 QueryWrapper<ItemCat>queryWrapper=new QueryWrapper<>();
 queryWrapper.eq("parent_id",parentId);
 //1.查询数据库一级的记录
 List<ItemCat> itemCats = itemCatMapper.selectList(queryWrapper);
 //需要把List<ItemCat> 集合转成 List<EasyUiTree>
 List<EasyUiTree> tree=new ArrayList<>();
 //1.遍历List<ItemCat> 集合
 for (ItemCat it:itemCats
         ) {
 long id = it.getId();
 String name = it.getName();
 String state=it.getIsParent()?"closed":"open";
 //含参构造
 EasyUiTree easyUiTree=new EasyUiTree(id,name,state);
 //转换
 tree.add(easyUiTree);
 }
 return tree;

子菜单查询

image.png
当点击父节点时就是把父节点的id作为子节点的parentId传进去
image.png
只需对接收的参数进行判断:方式一

@RequestMapping("list")
public List<EasyUiTree> doItemFindList( Long id) {
 Long parentId=id==null?0:id;// 假设只查询一级商品
 return itemCatService.findAll(parentId);
}

方式二

@RequestMapping("list")
//@RequestParam 接收参数id传递给指定的变量parentId defaultValue初始化0
public List<EasyUiTree> doItemFindList(@RequestParam(value = "id",defaultValue = "0") Long parentId) {
 // Long parentId=id==null?0:id;// 假设只查询一级商品
 return itemCatService.findAll(parentId);
}

实现原理

页面参数: http://请求路径?参数
对象:1.Request 页面向服务器传参 2.Response服务器向页面传参
Request和Response相当于中间商 向中间商传参 取参
只有保证传和取名字相同时 才能取到 要不然就是null
image.png
底层原理实现
image.png
如果传的是个对象,利用对象获取属性get()————封装set()
image.png

总结

1.正确编辑HTML标签,属性编写与POJO属性名一致
2.参数接收时,POJO属性必须写包装类型
3.有些特定的属性可以利用SpringMVC进行动态的准化,数组/list/map


Silver
13 声望11 粉丝

引用和评论

0 条评论