package com.jeeplus.common.tag; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import com.jeeplus.common.config.Global; import com.jeeplus.common.utils.SpringContextHolder; import com.jeeplus.modules.sys.entity.Menu; /** * * 类描述:菜单标签 * * 刘高峰 * @date: 日期:2015-1-23 时间:上午10:17:45 * @version 1.0 */ public class MenuTag extends TagSupport { private static final long serialVersionUID = 1L; protected Menu menu;//菜单Map public Menu getMenu() { return menu; } public void setMenu(Menu menu) { this.menu = menu; } public int doStartTag() throws JspTagException { return EVAL_PAGE; } public int doEndTag() throws JspTagException { try { JspWriter out = this.pageContext.getOut(); String menu = (String) this.pageContext.getSession().getAttribute("menu"); if(menu!=null){ out.print(menu); }else{ menu=end().toString(); out.print(menu); } } catch (IOException e) { e.printStackTrace(); } return EVAL_PAGE; } public StringBuffer end() { StringBuffer sb = new StringBuffer(); sb.append(getChildOfTree(menu,0)); System.out.println(sb); return sb; } private static String getChildOfTree(Menu parent, int level) { StringBuffer menuString = new StringBuffer(); String href = ""; if (!parent.hasPermisson()) return ""; if (level > 0) {//level 为0是功能菜单 menuString.append("
  • "); ServletContext context = SpringContextHolder .getBean(ServletContext.class); if (parent.getHref() != null && parent.getHref().length() > 0) { if(parent.getHref().endsWith(".html")&&!parent.getHref().endsWith("ckfinder.html")){//如果是静态资源并且不是ckfinder.html,直接访问不加adminPath href = context.getContextPath() + parent.getHref(); }else{ href = context.getContextPath() + Global.getAdminPath() + parent.getHref(); } } } if (parent.hasChildren()) { if (level > 0) { menuString .append(" " + parent.getName() + ""); } if (level == 1) { menuString.append("