乐趣区

关于java:分级目录查询及SpringMVC页面传参

商品分类信息个别是三级目录

查问一级商品的分类 parent_id=0
查问二级商品的分类 parent_id=1
查问三级商品的分类 parent_id=2

商品分类展示

EasyUI-tree 格局封 vo 对象

业务逻辑

先查问一级菜单 树形构造在初始化时,不会传递任何信息

实现一级菜单展现

controller 层

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;

子菜单查问


当点击父节点时就是把父节点的 id 作为子节点的 parentId 传进去

只需对接管的参数进行判断:形式一

@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

底层原理实现

如果传的是个对象,利用对象获取属性 get()————封装 set()

总结

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

退出移动版