2011.10.29SSH2+Extjs用户根据角色加载不同的树二级节点.doc

2011.10.29SSH2+Extjs用户根据角色加载不同的树二级节点.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2011.10.29SSH2Extjs用户根据角色加载不同的树二级节点

SSH2+Extjs用户根据角色加载不同的树二级节点 说明:通过登录界面,用户输入名和密码,系统获取到用户名和密码后与与数据库进行比对:如果该用户是系统用户,则用户成功登录并跳转到新的界面。当该用户要查看相应的功能树的时候,系统会先获取用户登录的username,通过该用户名查询到在数据库中给该用户所赋予的角色id,然后再根据这个角色的id来查找这个角色所拥有的树的功能子节点,然后将查询到的资源按照tree所要求的json形式输出到前台从而显示出tree。通过点击tree的节点,将该node的id发送的后台,后台自动加载该id对应的子节点并加载实现相应的树。本功能实现没有添加service层,Action直接调用Dao层的实现方法 1. 实现界面展示 首先是登录界面1,登录成功后跳转图片2 点击图片2中圈红的 点击后便进入tree的显示图片3,能够看到系统已经自动显示到二级树节点 点击图片3中的节点ShangjiShiyan,系统会自动查找该node的id对应的子节点并加载显示 这里可以把树节点设置成多层,这里仅是用到三级节点便到叶子节点就结束了。 2. 数据库设计 思路:通过Users表中查找系统用户UserName对应的UserID属性,然后通过连接表userrolerelationship找到该用户对应Role表的RoleID属性,在通过连接表roleresourcerelationship查找到该RoleID对应的Resource,并把这些resource放到List中输出。具体的表如下所示: (1)users表(UserName就是用户登录时的用户名) (2)userrolerelationship表(分别对应上表中的UserID和下表的RoleID) (3)role表 (4)Roleresourcerelationship表 (5)Resource表 (6)Tree表(json属性结构标准表,resource需要转换成tree形式输出) 注意: Mysql中连接表的外键设定(UserID找到RoleID) (1)在Mysql中设计三个连接表 Users表 Userrolerelationship表(连接表) Role表 这里通过Users表的Username到连接表中查找连接的表,然后通过连接表查找要连接的RoleID。在连接之前,首先要先确定Users表和Role表的主键类型,必须和连接表中这两列的属性完全一致,否则无法连接。在各自的表中id和RoleID也都是Int10 先完善Users和Role表中的数据,在填写连接表中的内容 (2)确定多表之间的关联 清空连接表中的内容 点击+添加外键,连接Users表 点击+添加外键,连接Role表 3. 前台界面设计 说明:通过登录界面,系统将用户登录的时候输入的用户名保存则session对象中,这样能够方便其他的Action访问该username,从而确定该用户名的权限 前台界面树界面XueshengGuanli.js: Ext.onReady( function() { // 设定一个根节点 var rootAsy = new Ext.tree.AsyncTreeNode({ text:学生管理, iconCls : icon-treeroot, id:0, expanded:true }); // 设定一个树加载器,当树节点展开时,延迟加载子节点 var depTreeLoader = new Ext.tree.TreeLoader({ preloadChildren : true, dataUrl : Tree.action // ,baseParams : { // action : getAllDlb // } }); //加载树的触发事件 depTreeLoader.on(beforeload,function(depTreeLoader,node){ this.baseParams.id=node.id; //通过这个传递参数,这样就可以点一个节点出来它的子节点来实现异步加载 },depTreeLoader); //显示的 tree var testtree = new Ext.tree.TreePanel({ autoScroll : true, bodyStyle : background-color:white,

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档