zoukankan      html  css  js  c++  java
  • easyUI数据转换为不同级别的数据

    将同级别的数据转化为不同树级别的easyUI数据 1. serviceimp层业务的实现 2.controller控制转换 3.jsp通过json接收
    1 serviceimp层业务的实现
    @Override
    public List<TreeNode> getTreeNodesFromMenuList (List<TPermission> menus) {
    List<TPermission> menuOne = new ArrayList<TPermission>();
    //处理一级菜单
    for (TPermission tp : menus) {
    if (tp.getPid() == 0) {
    menuOne.add(tp);
    }
    }

    //处理二级菜单
    for (TPermission tp : menus) {
    int pid = tp.getPid();
    TPermission tpp = null;
    if (pid != 0) {
    for (TPermission tp1 : menuOne) {
    if (tp1.getId() == pid) {
    tpp = tp1;
    break;
    }
    }
    tpp.getChildren().add(tp);
    }
    }
    Collections.sort(menuOne);
    for (TPermission tp : menuOne) {
    Collections.sort(tp.getChildren());
    }

    List<TreeNode> treeNodes = transfer(menuOne);

    return treeNodes;
    }

    private List<TreeNode> transfer(List<TPermission> tp) {
    List<TreeNode> treeNodes = new ArrayList<TreeNode>();
    TreeNode tn = null;
    for (TPermission tp1 : tp) {
    tn = new TreeNode();
    tn.setId(tp1.getId());
    tn.setText(tp1.getName());
    tn.getAttributes().put("url", tp1.getUrl());
    if (tp1.getChildren().size() != 0) {
    tn.setState("closed");
    tn.setChildren(transfer(tp1.getChildren()));
    } else {
    tn.setState("open");
    }
    treeNodes.add(tn);
    }
    return treeNodes;
    }

    }

    2 controller层控制转换和与jsp交互
    @RequestMapping(value = "getMenu", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public List<TreeNode> getUserMenu() {
    List<TreeNode> treeNodes = null;
    // 获取到当前主体
    Subject subject = SecurityUtils.getSubject();
    // 由当前主体获取到其首要身份信息
    SysUser user = (SysUser) subject.getPrincipals().getPrimaryPrincipal();
    // 获取该用户的菜单
    List<TPermission> menuList = user.getMenus();
    // 将Tpermission的集合转换为TreeNode的集合,返回
    treeNodes = menuService.getTreeNodesFromMenuList(menuList);
    return treeNodes;
    }

    3 .前段接收时json
    <script>
    $(function(){
    //当页面加载完毕之后,初始化树
    $('#myTree').tree({
    url:'<%=basePath%>getMenu.do',
    onClick:function(node){
    alert(node.attributes.url);
    if ($('#myTree').tree('isLeaf',node.target)) {
    $("#myTabs").tabs('add',{
    title:node.text,
    href:"<%=basePath%>" + node.attributes.url,
    closable:true,
    iconCls:'icon-ok'
    });
    }/* else {
    alert("父节点:" + node.text);
    } */
    }
    });
    });
    </script>

  • 相关阅读:
    葡萄城报表介绍:多数据源报表
    葡萄城报表介绍:报表打印
    葡萄城报表介绍:财务报表分析
    葡萄城报表介绍:数据钻取
    用递归法计算斐波那契数列的第n项
    奋进
    //java递归调用输出一个目录下的所有子目录及文件名称 (最新增加)
    分享下通过java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里(同时将不会出现覆盖问题和重复读入问题)
    $_SERVER函数获取的内容解释
    mysql数据库忘记密码
  • 原文地址:https://www.cnblogs.com/lgf428/p/6078256.html
Copyright © 2011-2022 走看看