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

📄 menuitemimpl.java

📁 这个weblogging 设计得比较精巧
💻 JAVA
字号:
package org.roller.presentation.tags.menu;import java.util.ArrayList;import java.util.Hashtable;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import javax.servlet.jsp.PageContext;import org.apache.struts.config.ForwardConfig;import org.apache.struts.config.ModuleConfig;import org.apache.struts.util.RequestUtils;import org.roller.RollerException;import org.roller.presentation.RollerContext;//////////////////////////////////////////////////////////////////////////**  * MenuImpls has collection of menu items. Multiple menus can be used  * in one session, but they must have unique names. */ public class MenuItemImpl extends BaseRollerMenu implements MenuItem{	private String mMenuId = null;		/** Name of Struts forward */	String mForward = null;		/** Is this the default menu? */	boolean mDefault = false;	//---------------------------------------------------	public MenuItemImpl() {}	/** Construct with name and Struts forward */	public MenuItemImpl(String n, String f)     {         super(n);         mForward = f;     }	/** Parent menu's ID */ 	public void setMenuId( String v ) { mMenuId = v; }	/** Parent menu's ID */	public String getMenuId() { return mMenuId; }	/** Struts forward */ 	public String getForward() { return mForward; }	/** Struts forward */ 	public void setForward( String forward ) { mForward = forward; }	/** Name of Struts forward menu item should link to */	public String getUrl( PageContext pctx ) 	{		String url = null;		try 		{			Hashtable params = RollerMenuModel.createParams(					(HttpServletRequest)pctx.getRequest());			params.put( RollerMenuModel.MENU_ITEM_KEY, getName() );			url = RequestUtils.computeURL( 				pctx, 				mForward, // forward				null,     // href				null,     // page				null,				params,   // params 				null,     // anchor				false );  // redirect		}		catch (Exception e)		{			pctx.getServletContext().log(				"ERROR in menu item creating URL",e);		}		return url;	}	/** Given a request, tells if menu item is selected */ 	public boolean isSelected( HttpServletRequest req )	{		boolean selected = false;        HttpSession ses = req.getSession(false);                String itemKey = req.getParameter(RollerMenuModel.MENU_ITEM_KEY );        if (null == itemKey)         {            itemKey = (String)req.getAttribute(RollerMenuModel.MENU_ITEM_KEY);        }        if (null == itemKey)         {            itemKey = (String)ses.getAttribute(mMenuId+"_"+RollerMenuModel.MENU_ITEM_KEY);        }        if (itemKey != null && itemKey.equals(mName))         {            selected = true;        }		else		{			// Is this item's forward the one being requested?            ServletContext ctx = RollerContext.getServletContext();     			ModuleConfig mConfig = RequestUtils.getModuleConfig(req,ctx);			ForwardConfig fConfig = mConfig.findForwardConfig(mForward);									if (fConfig != null)			{				// Is the forward path in the request's URL?				String url = req.getRequestURL().toString();								if ( url.indexOf( fConfig.getPath() ) != -1 )				{					//  Yes it is, so return true - this item is selected					selected = true;				}							}		}		if (ses != null && selected)		{			ses.setAttribute(mMenuId+"_"+RollerMenuModel.MENU_ITEM_KEY, mName);		}		return selected;	}}//// get menu key from request param or from cookie//String menuKeyName = mMenuId+"rmk";//String menuKey = req.getParameter("rmk");//if (menuKey == null) //{//  Cookie menuCookie = RequestUtil.getCookie(req, menuKeyName);//  if (menuCookie != null)//  {//      menuKey = menuCookie.getValue();//      req.setAttribute("rmk", menuKey);//  }//}//// save menu key in cookie//RequestUtil.setCookie(res, menuKeyName, menuKey, req.getContextPath());////// get menu item key from request param or from cookie//String itemKeyName = mMenuId+"rmik";//String itemKey = req.getParameter("rmik");//if (itemKey == null) //{//  Cookie itemCookie = RequestUtil.getCookie(req, itemKeyName);//  if (itemCookie != null)//  {//      itemKey = itemCookie.getValue();//      req.setAttribute("rmik", itemKey);//  }//}//// save menu item key in cookie//RequestUtil.setCookie(res, itemKeyName, itemKey, req.getContextPath());        

⌨️ 快捷键说明

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