ssh框架下用ajx动态从数据库查询的菜单.docxVIP

  • 11
  • 0
  • 约9.74千字
  • 约 8页
  • 2017-05-13 发布于贵州
  • 举报

ssh框架下用ajx动态从数据库查询的菜单.docx

ssh框架下用ajx动态从数据库查询的菜单

动态菜单的构建,即使用ajax异步与服务器通信,实时以局部刷新的方式从数据库取出菜单。这里把我的实现记录下来,以备以后维护升级。 1、首先是model层 public class TreeMenu { private Long id; private Long parentID; private String menuName; private String url; setter,getter省略 2、Dao层 数据库映射 hibernate-mapping package=com.hb.manager.user.model class name=TreeMenu table=treeMenu010t dynamic-insert=true dynamic-update=true id name=id type=long column=id generator class=identity/ /id property name=parentID type=long column=parentID/ property name=menuName type=string column=menuName/ property name=url type=string column=url/ /class /hibernate-mapping 数据库的操作主要用到通过角色来取出菜单,判断是否有子菜单的操作 按角色取出所有菜单 public ListTreeMenu getTreeMenuByRoleID(long roleID){ return getHibernateTemplate().find(select b from Role a join a.treeMenu b where a.id=?,new Object[]{roleID}); } 按角色取出根菜单 public ListTreeMenu getFirstLeaveMenuByRoleID(long roleID){ return getHibernateTemplate().find(select b from Role a join a.treeMenu b where a.id=? and b.parentID=0,new Object[]{roleID}); } 判断是否有子菜单 public boolean hasChild(long id){ return !getHibernateTemplate().find(from TreeMenu a where a.parentID=?,new Object[]{id}).isEmpty(); } 数据库中存的结构如下所示: 3、思路及关键实现 下面将要讲到关键的地方,首先就得把思路说一下,思路是先显示parentID为0的菜单,也就是每个菜单的根部。当点击根菜单的时候,再将下面的子菜单通过异步的方式取出。效果如下: 这里的话,我就自顶向下的方式说明。 首先是前台的jsp,主要代码如下: table height=16px bgColor=#f4fffe tr s:iterator value=treeMenu id=parentMenu td valign=top height=16px ul id=parents:property value=#parentMenu.id/class=a s:property value=#parentMenu.menuName/ /ul /td td valign=top height=16px img id=downDetails:property value=#parentMenu.id/ src=%=request.getContextPath()%/images/downDetail.jpg onclick=display(s:property value=#session.username/,s:property value=#parentMenu.id/); align=top height=10px/ /td /s:iterator /tr /table 表格的第一列存的是菜单,第二列存的是箭头。菜单是通过一个List迭代出来的。这里的关键是用到一个js。js代码如下:

文档评论(0)

1亿VIP精品文档

相关文档