java web 树形管理_java web 后台树形菜单排序
1.需求場景
數據庫后臺返回樹形結構菜單,實現菜單排序。
2.項目環境
spring spring mvc mybatis? mysql
3.實現方法
對應的實體類
private int id;// '主鍵ID',
private String cname;// '菜單名稱',
private int pid;// '父級ID',默認0
private String redirect;// '菜單地址',
private String creator;// '創建者',
private String updatedate;// '修改日期',
private String updator;// '修改者',
private String createdate;// '創建日期',
private double sortid;//菜單排序字段 默認0
private List children;//父菜單下的子菜單封裝樹形數據
public class TreeUtil {
private int count = 0;
private List nodes;
public TreeUtil(List nodes){
this.nodes = nodes;
}
public List buildTree(){
List list = new ArrayList();
for (AuthUser node : nodes) {
if (node.getPid() == 0) {
list.add(node);
}
}
list = getSortChildren(list);
for (AuthUser node : list) {
build(node);
}
return list;
}
/***
* 構建權限樹
* @Title: build
* @Description: TODO
* @param node
*/
private void build(AuthUser node){
List children = getChildren(node);
if (!children.isEmpty()) {
node.setChildren(children);
if(count <3){
//children.get(0).setChecked("true");//設置默認選中
count ++;
}
for (AuthUser child : children) {
build(child);
}
}
}
/**
*
* @Title: getChildren
* @Description: TODO 獲取子節點
* @param node
* @return
*/
private List getChildren(AuthUser node){
List children = new ArrayList();
Integer id = node.getId();
for (AuthUser child : nodes) {
if (id==child.getPid()) {
children.add(child);
}
}
return getSortChildren(children);
// return children;
}
/**
*
* @Title: getChildren
* @Description: TODO 獲取排序子節點
* @param node
* @return
*/
private List getSortChildren(List children){
MyCompare my = new MyCompare();
Collections.sort(children,my) ;
return children;
}
}自定義比較器
public class MyCompare implements Comparator{
@Override
public int compare(AuthUser o1, AuthUser o2) {
if(o1.getSortid()
return -1;
}else{
return 1;
}
}
}
數據庫返回
public void getauthinfo(Map param){
List authList =userRoleService.getUserAuthTree(param); //執行查詢
TreeUtil tree = new TreeUtil(authList);
//返回按照sortid排好序的樹形結構的菜單
List datalist = tree.buildTree();
}
} catch (Exception e) {
e.printStackTrace();
}
}
總結
以上是生活随笔為你收集整理的java web 树形管理_java web 后台树形菜单排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特斯拉 Powerwall 用户参与加州
- 下一篇: java常考设计模式_java笔试常考的