extjs,后台递归获取权限树,进行展示

来源:互联网 发布:古代战争 知乎 编辑:程序博客网 时间:2024/06/04 18:19

权限po:

public class Privilege implements Comparable<Privilege>{private int id;private String name;private String icon;private boolean expanded;private List<Privilege> children;private Privilege parent;private int index;@SuppressWarnings("unused")private boolean leaf = true;private String config;
</pre><pre name="code" class="java">

</pre>action中获取拼接json<p></p><p></p><pre name="code" class="java">/** * 根据登陆信息获取我的权限 */public void getMenu(){JsonUtil ju = new JsonUtil();ju.setFilter(new String[]{"parent","index"});String[][] field = {{"name","text"}};ju.setField(field);StringBuffer json = new StringBuffer("{checked:false,children:");json.append(ju.getJson(this.getSessionUser().getTree().getChildren()));json.append("}");System.out.println(json.toString());write(json.toString());}
session中存放的是一个userDto,

private int id;private String username;private String realName;private List<Privilege> list;private String roleName;private Privilege tree;

登录的时候,就获取该用户的角色role,和对应的privilege权限,然后将信息设置给userDto存放到session


extjs部分:view

Ext.define("crm.view.menu.MenuTree",{extend: 'Ext.tree.Panel',alias: 'widget.menutree',//{xtype:'menutree'}rootVisible:false,//不展示ROOTdisplayField:'text',animate: true,store: 'menu.MenuTreeStore'});

store

Ext.define("crm.store.menu.MenuTreeStore",{extend: 'Ext.data.TreeStore',defaultRootId: 'root',proxy: {type:'ajax',url: 'user_getMenu',//请求actionreader:'json'}});






0 0
原创粉丝点击