我有一张表action(id,name,id1),这是一张权限表,用于在登陆时取得对应权限,id1为空的说明是标题功能
假如有如下数据:
1 A
2 A1 1
3 A2 1
4 A3 1
5 B
6 B1 5
7 B2 5
我要在登陆时得到的结果是A标题下有A1,A2,A3 3个子菜单,B标题下有B1,B2菜单,我目前的处理方法是在登陆时传一个id1进去,查出每个标题对应的子菜单,原后结果放在list中,在跳转页面上在得到这list,这样就有list1,list2...
等等多个,如果菜单多的话,登陆时就要多次查数据库,这样导致登陆很慢,我刚试了下,查到list3时就报错了,请问有没好的方法得到我想要的结果。
假如有如下数据:
1 A
2 A1 1
3 A2 1
4 A3 1
5 B
6 B1 5
7 B2 5
我要在登陆时得到的结果是A标题下有A1,A2,A3 3个子菜单,B标题下有B1,B2菜单,我目前的处理方法是在登陆时传一个id1进去,查出每个标题对应的子菜单,原后结果放在list中,在跳转页面上在得到这list,这样就有list1,list2...
等等多个,如果菜单多的话,登陆时就要多次查数据库,这样导致登陆很慢,我刚试了下,查到list3时就报错了,请问有没好的方法得到我想要的结果。
如果是菜单一般这个表的数据不会很多,也就一二百条,完全可以全读出来,递归生成TREE菜单.如果数据实在太多,可以用AJAX局部刷新
List list =logser.getUserAction("300".toString());
//List list1=logser.getUserAction("350".toString());
List list2=logser.getUserAction("400".toString());
List list3=logser.getUserAction("450".toString());
List list4=logser.getUserAction("500".toString());
List list5=logser.getUserAction("550".toString());
List list6=logser.getUserAction("600".toString());
List list7=logser.getUserAction("650".toString());
List list8=logser.getUserAction("700".toString());
List list9=logser.getUserAction("750".toString());
request.setAttribute("actionsList", list);
// request.setAttribute("actionsList1", list1);
request.setAttribute("actionsList2", list2);
request.setAttribute("actionsList3", list3);
request.setAttribute("actionsList4", list4);
request.setAttribute("actionsList5", list5);
request.setAttribute("actionsList6", list6);
request.setAttribute("actionsList7", list7);
request.setAttribute("actionsList8", list8);
request.setAttribute("actionsList9", list9);
这是service:
public List getUserAction(String keyFlag)
{
return logdao.getUserAction(keyFlag);
}
这是DAO中的:
public List getUserAction(String keyFlag) {
// 验证用户
String hql = "select u.actionName,u.path from WebAction u where u.keyFlag=?";
Query query = this.getSession().createQuery(hql);
query.setString(0, keyFlag) ;
List userList=query.list();
return userList;
}
我刚一个一个的加,加到5个一起查时就报错了。奇怪