分级目录查询及SpringMVC页面传参

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

查询一级商品的分类 parent_id=0
查询二级商品的分类 parent_id=1
查询三级商品的分类 parent_id=2
分级目录查询及SpringMVC页面传参_第1张图片

商品分类展现

EasyUI-tree格式封vo对象

分级目录查询及SpringMVC页面传参_第2张图片

业务逻辑

先查询一级菜单 树形结构在初始化时,不会传递任何信息
分级目录查询及SpringMVC页面传参_第3张图片

实现一级菜单展示

controller层
分级目录查询及SpringMVC页面传参_第4张图片
service层

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

serviceImpl层

@Override
public List findAll(long parentId) {
 QueryWrapperqueryWrapper=new QueryWrapper<>();
 queryWrapper.eq("parent_id",parentId);
 //1.查询数据库一级的记录
 List itemCats = itemCatMapper.selectList(queryWrapper);
 //需要把List 集合转成 List
 List tree=new ArrayList<>();
 //1.遍历List 集合
 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;

子菜单查询

分级目录查询及SpringMVC页面传参_第5张图片
只需对接收的参数进行判断:方式一

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

方式二

@RequestMapping("list")
//@RequestParam 接收参数id传递给指定的变量parentId defaultValue初始化0
public List 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
分级目录查询及SpringMVC页面传参_第6张图片

总结

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

你可能感兴趣的:(java,spring)