SSH框架常用的一些菜单模块前端生成方式。
菜单无论在哪一个系统中都是存在,但是随着前端框架的不同,菜单的实现也是完全不一样的,当你开始一个项目系统构建时,最开始就是搭建好系统的菜单模块
使用OGNL表达式和struts2标签方式搭建菜单模块,struts2标签格式:<s:xx></s:xx>
菜单的搭建需要在登入的时候就从后台查询得到菜单的信息(菜单名,菜单响应,菜单图标,菜单级别等等)。通过后台服务查出来后
//将查询的到的菜单数据放入应用层MAP中
ServletActionContext.getContext().getApplication().put("sessioninfo",sessionInfo);
//在jsp中创建标签我要用的struts2的标签是: <s:iterator/> 循环标签
//具体实现
<ul id="MenuUl">
<s:if test="application.topPrivilegeList == null ">application.topPrivilegeList is null</s:if>
<%-- 显示一级菜单 --%>
<s:iterator value="#application.topPrivilegeList">
<li class="level1">
<div onClick="menuClick(this);" class="level1Style">
<img src="${pageContext.request.contextPath}/style/images/MenuIcon/FUNC20001.gif" class="Icon" />
${name}
</div>
<ul style="" class="MenuLevel2" id="aa">
<%-- 显示二级菜单 --%>
<s:iterator value="childern">
<li class="level2">
<div class="level2Style">
<img src="${pageContext.request.contextPath}/style/images/MenuIcon/menu_arrow_single.gif" />
<a target="right" href="${p ageContext.request.contextPath}${url}.action"> ${name}</a>
</div>
</li>
</s:iterator>
</ul>
</li>
</s:iterator>
</ul>
另外一种在EASYUI前端框架中的菜单模块初始化
//菜单数据sessionInfo放入应用上下文中中去
ServletActionContext.getRequest().getSession().setAttribute(sessionName, sessionInfo);
<div class="easyui-accordion" style="border:left" data-options="fit:true,border:false">
<c:forEach var="item" items="${sessionInfo.auths}">
<c:if test="${item.cpid=='0'}">
<div title="${item.cname}" iconCls="${item.ciconCls}">
<ul class="easyui-tree tree" data-options="url:'menuAction!treeRecursive.action?id=${item.cid}',onClick : function(node) {
var nodeurl = node.attributes['url'].replace(' ','');
if (nodeurl != '' && nodeurl !='#')
addTab(node);
}">
</ul>
</div>
</c:if>
</c:forEach>
</div>
这些菜单数据都是放在应用的上下文MAP数据结构中 的,通过OGNL表达式的方式获取值
一般后端会将值放到OGNL Context 中去,前端通过${属性名} ,#对象名