List fatherMenus = ms.getFatherMenus(loginUser);
session.setAttribute("fatherMenus", fatherMenus);//当前登录人的上级菜单
// 获取子菜单
Map childMenus = ms.getChildMenus(loginUser, fatherMenus);//传入上级菜单id获取上级菜单的子菜单
session.setAttribute("childMenus", childMenus);//获取当前登录人的二级菜单
获取一级菜单封装到一个集合中 list或map集合均可
获取二级菜单封装到map集合中去 需要传入一级菜单的id 获取所对应的二级菜单 所以使用map 集合 key-value的存值方式
显示时:循环一级菜单的集合
触发事件时将当前菜单的id传入 表明点击的是当前菜单的展开的也是当前菜单的二级菜单
循环二级菜单 传入一级菜单的id 显示一级菜单所对应的二级菜单
el表达式中也可以使用集合的方法 获取当前一级菜单对应的二级菜单
JSP页面代码:
<c:forEach var="father" items="${fatherMenus }">
<table cellspacing="0" cellpadding="0">
<tr>
<td background="img/menu_bt.jpg">
<a href="javascript:void(0)" >${father.name}</a>
</td>
</tr>
<tr>
<td></td>
</tr>
</table>
<table cellspacing="0" cellpadding="0">
<c:forEach var="child" items="${childMenus.get(father.id) }">
<tr>
<td>
<img src="http://www.likecs.com/img/menu_icon.gif" >
</td>
<td>
<a href="http://www.likecs.com/${child.url}" target="right" >${child.name }</a>
</td>
</tr>
</c:forEach>
<tr height=4>
<td colspan=2></td>
</tr>
</table>
</c:forEach>