⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listmenudisplayer.java

📁 Struts Menu这是为基于JSP和Struts的应用程序提供的Web菜单框架。菜单可以在一个XML文件中定义
💻 JAVA
字号:
/* * ListMenuDisplayer.java * * Created on December 7, 2002, 12:35 AM */package net.sf.navigator.displayer;import net.sf.navigator.menu.MenuComponent;import org.apache.commons.lang.StringUtils;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;/** * * @author  <a href="mailto:matt@raibledesigns.com">Matt Raible</a> * @version 1.0 */public class ListMenuDisplayer extends MessageResourcesMenuDisplayer {    //~ Instance fields ========================================================    // Is this class thread safe?  I'm doubting it - therefore, this    // probably shouldn't be here    private Map jsMap;    //~ Methods ================================================================    public void init(PageContext pageContext, MenuDisplayerMapping mapping) {        super.init(pageContext, mapping);        jsMap = new HashMap();        try {            out.println(displayStrings.getMessage("lmd.begin"));        } catch (Exception e) {}    }    public void display(MenuComponent menu) throws JspException, IOException {        if (isAllowed(menu)) {            out.println(displayStrings.getMessage("lmd.menu.top"));            displayComponents(menu, 0);            out.println(displayStrings.getMessage("lmd.menu.bottom"));        }    }    protected void displayComponents(MenuComponent menu, int level)    throws JspException, IOException {        String title = super.getMessage(menu.getTitle());        MenuComponent[] components = menu.getMenuComponents();        if (components.length > 0) {            // eliminate spaces in string used for Id            String domId =                StringUtils.deleteWhitespace(getMessage(menu.getTitle()));            // check to see if this name has already been used            if (jsMap.containsKey(domId + "Menu")) {                domId = domId + Math.round((Math.random() * 100)); // use a random number for uniqueness            }            String menuClass = "menu";            if (level >= 1) {                menuClass = "submenu";            }            out.println(displayStrings.getMessage("lmd.menu.actuator.top",                                                  domId,                                                  getMessage(menu.getTitle()),                                                  menuClass));            jsMap.put(domId + "Menu", domId + "Actuator");            for (int i = 0; i < components.length; i++) {                // check the permissions on this component                if (isAllowed(components[i])) {                    if (components[i].getMenuComponents().length > 0) {                        out.println("<li>");                        displayComponents(components[i], level + 1);                        out.println(displayStrings.getMessage("lmd.menu.actuator.bottom"));                        if (i == (components[i].getMenuComponents().length - 1)) { // last one                            out.println("</li>");                        }                    } else {                        out.println(displayStrings.getMessage("lmd.menu.item",                                                              components[i].getUrl(),                                                              super.getMenuToolTip(components[i]),                                                              this.getMessage(components[i].getTitle())));                    }                }            }            // close the </ul> for the top menu            if (menuClass.equals("menu")) {                out.println("</ul>");            }        } else {            if (menu.getParent() == null) {                out.println(displayStrings.getMessage("lmd.menu.standalone",                                                      menu.getUrl(),                                                      super.getMenuToolTip(menu),                                                      getMessage(menu.getTitle())));            } else {                out.println(displayStrings.getMessage("lmd.menu.item",                                                      menu.getUrl(),                                                      super.getMenuToolTip(menu),                                                      getMessage(menu.getTitle())));            }        }    }    /**     * This will output the ending HTML code to close tags from the beginning     * @param context the current pageContext     */    public void end(PageContext context) {        try {            out.print(displayStrings.getMessage("lmd.end"));            /*               // MR: Refactored to put initialization login into menuExpandable.js               out.print(displayStrings.getMessage("lmd.js.start"));               Set menus = jsMap.keySet();               // loop through each menu and initialize it               for (Iterator name = menus.iterator(); name.hasNext();) {                   String id = name.next().toString();                   out.print(displayStrings.getMessage("lmd.js", id, jsMap.get(id)));               }               out.print(displayStrings.getMessage("lmd.js.expand"));               out.print(displayStrings.getMessage("lmd.js.stop"));             */        } catch (Exception e) {}    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -