分析
- 每个菜单对象,有一个url属性.对应着连接.
- 请求到action;根据请求的url,从数据得到菜单对象.
- 在网页上输出菜单对象对应的菜单链.
菜单对象的dao
//添加根据url查询菜单的dao方法
public SystemMenu get(String url) {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("select o from SystemMenu o where o.url = :url");
query.setParameter("url",url);
List<SystemMenu> list = query.list();
if(list.size()==1) {
return list.get(0);
}
return null;
}
需要菜单链的列表的action
比如:Employee列表显示,需要菜单链,
则在Employee的显示列表的方法中,添加菜单对象.
public String execute() throws Exception {
//获取菜单对象
currentMenu = systemMenuService.get(super.getUrl());
//获取page对象
Page<List<Employee>> page = employeeService.list(query);
super.putContext("page", page);
return super.LIST;
}
//getUrl方法(获取当前访问的网址),写在BaseAction中
public String getUrl() {
url = ServletActionContext.getRequest().getRequestURL().toString();
return url;
}
需要菜单链的列表的jsp
- 通过当前的菜单对象获取其菜单集合
- 遍历集合,每个对象中的url属性,就是连接的href.
当前位置 : <s:a action="login_main">主页</s:a>
<s:iterator value="currentMenu.allParents">
><a href="<s:property value="url"/>"><s:property value="name"/></a>
</s:iterator>