@Override protected void encodeMarkup(FacesContext context, AbstractMenu abstractMenu) throws IOException { ResponseWriter writer = context.getResponseWriter(); PanelMenu menu = (PanelMenu) abstractMenu; String clientId = menu.getClientId(context); String style = menu.getStyle(); String styleClass = menu.getStyleClass(); styleClass = styleClass == null ? PanelMenu.CONTAINER_CLASS : PanelMenu.CONTAINER_CLASS + " " + styleClass; writer.startElement("div", menu); writer.writeAttribute("id", clientId, "id"); writer.writeAttribute("class", styleClass, "styleClass"); if (style != null) { writer.writeAttribute("style", style, "style"); } writer.writeAttribute("role", "menu", null); if (menu.getElementsCount() > 0) { List<MenuElement> elements = menu.getElements(); for (MenuElement element : elements) { if (element.isRendered() && element instanceof Submenu) { encodeRootSubmenu(context, menu, (Submenu) element); } } } writer.endElement("div"); }