- 浏览: 1994498 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
用Hibernate+Struts+Spring做了一个简单的树形菜单..通过dtree.js组件显示树形菜单。
具体Sql代码以及java后台的实现代码都贴出来.以供参考..
数据库表的代码:
--权限涉及的如下五个表; drop table roles; drop table user_roles; drop table menus; drop table rols_menus; drop table users;
--用户表; create table users( --主键, userid number primary key not null, username varchar2(50)not null, userpass varchar2(20)not null, --外键,所属部门; deptid number not null, --生日; birthday date not null, sex varchar2(4)not null, age number not null, --手机; combine varchar2(11)null, email varchar2(50)null, address varchar2(50)null, zipcode varchar2(8)null, remark varchar2(50)null, --创建users表的所属部门的外键; foreign key(deptid) references dept(deptid) ) --创建序列; drop sequence seq_users; create sequence seq_users; insert into users values(seq_users.nextval,'周海涛','123456',1,sysdate,'男',21,'13973312067','haitao7290783@126.com','湖南株洲县','412109','暂无备注');
--创建角色表; create table roles( rolesid number primary key not null, --主键角色编号; rolename varchar2(20)not null --角色名称; ) drop sequence seq_roles; create sequence seq_roles; insert into roles values(seq_roles.nextVal,'管理员'); insert into roles values(seq_roles.nextVal,'程序员'); insert into roles values(seq_roles.nextVal,'项目经理'); insert into roles values(seq_roles.nextVal,'公司总裁'); insert into roles values(seq_roles.nextVal,'副总经理'); insert into roles values(seq_roles.nextVal,'前台接待'); insert into roles values(seq_roles.nextVal,'产品销售'); insert into roles values(seq_roles.nextVal,'普通用户');
--用户角色中间表; create table user_roles( urId number references users(userid), --<外键>用户编号; rolesid number references roles(rolesid) --<外键>角色编号; ); insert into user_roles values(1,1); insert into user_roles values(2,2); insert into user_roles values(3,3); insert into user_roles values(4,4); insert into user_roles values(5,8);
--菜单表; create table menus( menusid number primary key not null, --菜单编号; menusname varchar2(20)not null, --菜单姓名; menusparent number not null, --父菜单编号; menusurl varchar2(150) null, --菜单链接; isshow number not null --是否显示; ) drop sequence seq_menus; create sequence seq_menus; --'-1'代表根目录 ; --1代表根目录下; 2--代表1的跟目下, --3代表-同级目录; insert into menus values(seq_menus.nextVal,'功能菜单',-1,'',1); insert into menus values(seq_menus.nextVal,'系统管理',1,'',1); insert into menus values(seq_menus.nextVal,'用户管理',2,'',1); insert into menus values(seq_menus.nextVal,'考勤管理',3,'',1); insert into menus values(seq_menus.nextVal,'个人设置',3,'',1); insert into menus values(seq_menus.nextVal,'短信管理',3,'',1); insert into menus values(seq_menus.nextVal,'通讯录管理',3,'',1); insert into menus values(seq_menus.nextVal,'权限管理',3,'',1); insert into menus values(seq_menus.nextVal,'公告管理',3,'',1); insert into menus values(seq_menus.nextVal,'考勤查询',4,'timecard.do?p=findtimecardSelect',1); insert into menus values(seq_menus.nextVal,'外出查询',4,'timecard.do?p=findpersonoutqin',1); insert into menus values(seq_menus.nextVal,'上班考勤',4,'timecard.do?p=kaoqin',1); insert into menus values(seq_menus.nextVal,'外出登记',4,'timecard.do?p=goout',1); insert into menus values(seq_menus.nextVal,'密码修改',5,'geRenSheZhi.do?p=mimaxiugai',1); insert into menus values(seq_menus.nextVal,'用户资料',5,'geRenSheZhi.do?p=yonghuziliao',1); insert into menus values(seq_menus.nextVal,'查看用户',5,'geRenSheZhi.do?p=chakanyonghu',1); insert into menus values(seq_menus.nextVal,'发送短信',6,'shortmessage.do?p=fasongduanxin',1); insert into menus values(seq_menus.nextVal,'已收短信',6,'shortmessage.do?p=yishouduanxin',1); insert into menus values(seq_menus.nextVal,'已发短信',6,'shortmessage.do?p=yifaduanxinxi',1); insert into menus values(seq_menus.nextVal,'添加联系人',7,'linkman.do?p=tianjiailianxiren',1); insert into menus values(seq_menus.nextVal,'添加新类型',7,'linkman.do?p=insertNewType',1); insert into menus values(seq_menus.nextVal,'删除联系人',7,'linkman.do?p=shanchulianxiren',1); insert into menus values(seq_menus.nextVal,'查找联系人',7,'linkman.do?p=chazhaolianxiren',1); insert into menus values(seq_menus.nextVal,'查询权限',8,'popedom.do?p=select_grant',1); insert into menus values(seq_menus.nextVal,'添加权限',8,'popedom.do?p=insert_grant',1); insert into menus values(seq_menus.nextVal,'修改权限',8,'popedom.do?p=update_grant',1); insert into menus values(seq_menus.nextVal,'发送公告',9,'proclaim.do?p=send_proclaim',1); insert into menus values(seq_menus.nextVal,'已发公告',9,'proclaim.do?p=alreadysend',1); insert into menus values(seq_menus.nextVal,'公告待审',9,'proclaim.do?p=proclaim_cognizance',1); insert into menus values(seq_menus.nex tVal,'已收公告',9,'proclaim.do?p=receipt_receipt',1);
--角色菜单中间表; create table rols_menus( rolesid number references roles(rolesid), --<外键>角色编号; menusid number references menus(menusid) --<外键>菜单编号; ) drop sequence seq_rols_menus; create sequence seq_rols_menus; insert into rols_menus values(1,1); insert into rols_menus values(1,2); insert into rols_menus values(1,3); insert into rols_menus values(1,4); insert into rols_menus values(1,5); insert into rols_menus values(1,6); insert into rols_menus values(1,7); insert into rols_menus values(1,8); insert into rols_menus values(1,9); insert into rols_menus values(1,10); insert into rols_menus values(1,11); insert into rols_menus values(1,12); insert into rols_menus values(1,13); insert into rols_menus values(1,14); insert into rols_menus values(1,15); insert into rols_menus values(1,16); insert into rols_menus values(1,17); insert into rols_menus values(1,18); insert into rols_menus values(1,19); insert into rols_menus values(1,20); insert into rols_menus values(1,21); insert into rols_menus values(1,22); insert into rols_menus values(1,23); insert into rols_menus values(1,24); insert into rols_menus values(1,25); insert into rols_menus values(1,26); insert into rols_menus values(1,27); insert into rols_menus values(1,28); insert into rols_menus values(1,29); insert into rols_menus values(1,30); insert into rols_menus values(4,1); insert into rols_menus values(4,2); insert into rols_menus values(4,3); insert into rols_menus values(4,4); insert into rols_menus values(4,5); insert into rols_menus values(4,6); insert into rols_menus values(4,7); insert into rols_menus values(4,10); insert into rols_menus values(4,11); insert into rols_menus values(4,12); insert into rols_menus values(4,15); insert into rols_menus values(4,16); insert into rols_menus values(4,17); insert into rols_menus values(4,18); insert into rols_menus values(4,19);
BaseDAO中的查询方法.
/** * 分页查找; * @param hql * @param page * @param size * @param objects * @return */ public List pageQuery(final String hql,final Integer page,final Integer size,final Object...objects){ return super.getHibernateTemplate().executeFind(new HibernateCallback(){ //一个匿名内部类; public Object doInHibernate(Session session) throws HibernateException, SQLException { // TODO Auto-generated method stub Query query=session.createQuery(hql); if(objects!=null){ for(int i=0;i<objects.length;i++){ query.setParameter(i, objects[i]); } } if(page!=null&& size!=null){ query.setFirstResult((page-1)*size).setMaxResults(size); } return query.list(); } }); }
service中的方法,根据用户名获取所有菜单;
/** * 根据用户名得到菜单 */ public Set selectByName(String name) { // TODO Auto-generated method stub String hql="From Menus as M join fetch M.roleses R join fetch R.userses U where U.username=?"; List list=iuser.pageQuery(hql, null, null,name); //把list转成set集合; Set set=new HashSet(list); return set; }
在Action中. 调用service中的方法。根据用户查找得到菜单;保存到session中。
Set menus=iser.selectByName(name); System.out.println("菜单项:"+menus); //把菜单项设置到session中; request.getSession().setAttribute("MeunsList",menus);
在JSP也页面使用dTree的方式是:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <script type="text/javascript" src="dtree/dtree.js"></script> <link rel="styleSheet" href="dtree/dtree.css" type="text/css"/> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>左边的框架页面</title> <!-- 定义树 --> <script> var d=new dTree('d'); d.config.check=false; //没有复选框 d.config.useIcons =true //有图片; </script> <style type="text/css"> *{ font-size:12px; color:black; } </style> </head> <body> <form method="post" name="myform"> <center> </center> <!-- 遍历,添加节点; --> <c:forEach items="${MeunsList}" var="m"> <script> //自己的菜单编号,父节点编号,名称,链接,提示,显示位置 d.add(${m.menusid},${m.menusparent},'${m.menusname}','${m.menusurl}','欢迎使用OA办公管理系统!','right'); </script> </c:forEach> <!--显示树--> <script> document.write(d); d.openAll(); </script> </form> </body> </html>
发表评论
-
100个javascript小知识点-经典
2014-02-08 14:22 11771. document.write(”"); 输出 ... -
javascript读取文件夹下的所有文件
2012-09-19 00:56 8224一、功能实现核心:FileSystemObject 对象 ... -
Javascript去除数组中的重复值
2012-08-27 23:33 1505去除数组中的重复值; 具体代码如下 <script ... -
Javascript常用的操作
2012-07-12 00:50 1093我们经常使用javascript脚本对table、select ... -
HTML字符实体(Character Entities)和转义字符串(Escape Sequence)
2012-04-13 07:56 1121HTML字符实体(Character En ... -
javascript获取点击的文本属性
2012-04-11 15:45 1666我们通常需要获取点击的文本信息,于是通过javascr ... -
javascript校验实例三
2012-02-07 09:26 1118/** * 获取id获取name,className选择器 ... -
javascript校验实例二
2012-01-29 09:38 1090/** * 解析字符数组; * @param s ... -
javascript闭包的实现方式
2012-01-15 00:58 1148闭包说白了就是封装的意思..为了隐藏方法内部的实现细节. ... -
javascript校验实例一
2011-12-30 17:44 1147//公共类型; validTypeArray = ne ... -
javascript 文本验证实例。
2011-12-28 16:41 1053javascript 基本验证 /** * ... -
javascript面向对象知识学习笔记二
2011-12-28 10:43 981javascript 面向对象知识学习笔记二: ... -
javascript 面向对象学习笔记一
2011-12-28 10:41 994javascript 面向对象基础知识: //给o ... -
HTML中的Flie标签禁止修改路径问题。
2011-10-18 17:37 1348之前在项目中遇到一个问题.就是HTML中 File文件控 ... -
iframe中子窗体调用父窗体的方法
2011-10-09 15:52 2000比如一个框架使用使用iframe。 左侧的iframe中 ... -
JS 敲回车按钮 登陆 支持火狐 和 iE浏览器.
2011-09-16 15:50 3145登陆的 敲回车按钮, 在使用event事件来监听. ... -
javascript 页面跳转
2011-08-24 17:06 1001比如我们在.jsp页面定义一个iframe.点击按钮链接的时候 ... -
javascript 操作两个select,左右选择值。
2011-08-21 18:45 3149下面是我做的一个简单的例子. 就是当 ... -
javascript 基础知识
2011-08-21 14:19 1190获取表单 Js代码 document. ... -
javascript对table的添加,删除行的操作
2011-08-19 00:59 6080<body> <form name= ...
相关推荐
javascript树形菜单
总的来说,JavaScript树形菜单是通过DOM操作和事件处理来实现的。在实际项目中,可能会结合使用前端框架如React、Vue或Angular,以及第三方库如jQuery UI或jsTree,以简化开发并提供更丰富的功能。在压缩包中的"树形...
JavaScript树形菜单是一种常见的网页交互元素,用于组织和展示层次化的数据或链接。在网页设计中,它能够帮助用户以直观、易于理解的方式探索复杂的结构。本文将深入探讨如何使用JavaScript来实现这样的功能。 首先...
实现JavaScript树形菜单主要涉及以下几个关键技术点: 1. 数据结构设计:首先,我们需要定义一个数据结构来存储树形菜单的数据。通常,我们可以使用JSON对象来表示菜单节点,每个节点包含ID、文本、子节点数组等...
源码 javascript 树形菜单 脚本说明: 第一步:把如下代码加入区域中 <script language="JavaScript1.2"> scores = new Array(20);var numTotal=0;NS4 = (document.layers) ? 1 : 0;IE4 = (document.all) ? 1 : 0;ver4...
JavaScript树形菜单是一种常见的网页交互元素,用于展示层次结构的数据,比如网站导航、文件系统或者组织结构等。右键菜单则是用户在鼠标右键点击时出现的上下文相关操作选项,增强了用户体验。在这个主题中,我们将...
在ASP、JSP等Web项目中,JavaScript树形菜单的使用可以极大地提升用户体验,因为它允许用户即时展开、折叠节点,无需每次操作都向服务器发送请求。 首先,理解JavaScript树形菜单的基本结构是至关重要的。每个菜单...