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

📄 menutag.java

📁 OPIAM stands for Open Identity and Access Management. This Suite will provide modules for user & rig
💻 JAVA
字号:
/*
 * OPIAM Suite
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */

package opiam.admin.faare.struts.taglib;

import opiam.admin.faare.persistence.javabeans.JBTop;
import opiam.admin.faare.service.UserContext;
import opiam.admin.faare.struts.service.beans.JBFeature;
import opiam.admin.faare.struts.service.beans.JBMenuElement;

import org.apache.struts.taglib.TagUtils;

import java.net.URLEncoder;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;


/**
 * Generates menu element, after calling the menu feature plugin if defined.<br>
 * Example of generated code:<br>
 * <code>
 *&lt;A
 *           href="showSearchUser.do"&gt;&lt;IMG border='0' alt='Directory'
 *           src="/application_name/images/but_annuaire.gif"
 *           name='directory_button'&gt;&lt;/A&gt;
 * </code>
 *
 */
public class MenuTag extends TagSupport
{
    /** Menu name. */
    private String name;
    
    //DW/2668/BeginPatch
    /** Base context for the Url */
    private String basecontext = null;
    //DW/2668/EndPatch

    /** Not used. */
    private String property = null;

    /** Menu scope. */
    private String scope;

    /** Menu CSS style. */
    private String style;

    /**
     * @see javax.servlet.jsp.tagext.Tag#doStartTag().
     */
    public int doStartTag() throws JspException
    {
        JBMenuElement elt;
        JBFeature fea;
        String paramUrl = null;

        try
        {
            elt = (JBMenuElement) TagUtils.getInstance().lookup(pageContext, name,
                    property, scope);
            fea = elt.getFeature();

            if (fea == null)
            {
                return SKIP_BODY;
            }
            else
            {
                if (fea.getPlugin() != null)
                {
                    // check if this feature is active by the supplied plugin
                    UserContext userContext = (UserContext) TagUtils.getInstance().lookup(pageContext,
                            "sessionContext", "userContext", "session");

                    JBTop currentEntry = (JBTop) TagUtils.getInstance().lookup(pageContext,
                            fea.getCurrentObjname(), fea.getCurrentObjprop(),
                            "session");

                    if (!fea.getPlugin().isActive(fea.getName(), currentEntry,
                                userContext))
                    {
                        return SKIP_BODY;
                    }
                }

                if (fea.getParamId() != null)
                {
                    // construction de param鑤re pour l'url
                    paramUrl = (String) TagUtils.getInstance().lookup(pageContext,
                            fea.getParamName(), fea.getParamProperty(),
                            "session");
                }
            }

            // fea not null
            StringBuffer sb = new StringBuffer();
            sb.append("<a href='");
            
            //DW/2668/BeginPatch
            if ((basecontext != null) && (basecontext.equals("page")))
            {
            	String pagecontext = ((HttpServletRequest) pageContext.getRequest()).getContextPath(); 
            	sb.append(pagecontext);
            	int pos = pagecontext.lastIndexOf("/"); 
            	
            	if (pos < pagecontext.length())
            	{
            		sb.append("/");
            	}
            }
            else if (basecontext != null)
            {
            	sb.append(basecontext);
            }
            //DW/2668/EndPatch
            
//DW/2606/BeginPatch
            sb.append(URLEncoder.encode(fea.getUrl(), "UTF-8"));
//DW/2606/EndPatch

            if (fea.getParamId() != null)
            {
                // ajout de param鑤re
                sb.append("?");
//DW/2606/BeginPatch
                sb.append(URLEncoder.encode(fea.getParamId(), "UTF-8"));
//DW/2606/EndPatch
                sb.append("=");
//DW/2606/BeginPatch
                sb.append(URLEncoder.encode(paramUrl, "UTF-8"));
//DW/2606/EndPatch
            }
            
            //DW/2666/BeginPatch
            if (fea.getTarget() != null)
            {
            	sb.append("' target='");
            	sb.append(URLEncoder.encode(fea.getTarget(), "UTF-8"));
            }
            //DW/2666/EndPatch

            if (style != null)
            {
                sb.append("' class='");
                sb.append(style);
                sb.append("' >");
            }
            else
            {
                sb.append("'>");
            }

            if (elt.useIcon())
            {
                sb.append("<IMG border='0' alt='");
                sb.append(fea.getLabel());
                sb.append("' name='");
                sb.append(fea.getName());
                sb.append("' src='");

                sb.append(((HttpServletRequest) pageContext.getRequest()).getContextPath());
                sb.append(fea.getOnicon());
                sb.append("'>");
            }
            else
            {
                // label only
                sb.append(fea.getLabel());
            }

            sb.append("</a>");

            TagUtils.getInstance().write(pageContext, sb.toString());
        }
        catch (Exception e)
        {
            //e.printStackTrace();
            return (SKIP_BODY); // Nothing to output
        }

        return SKIP_BODY;
    }

    /**
     * @see javax.servlet.jsp.tagext.Tag#release().
     */
    public void release()
    {
        super.release();
    }

    /**
     * Sets the name of the menu.
     * @param aname The name to set
     */
    public void setName(String aname)
    {
        this.name = aname;
    }

    /**
     * Sets the scope of the menu.
     * @param ascope The scope to set
     */
    public void setScope(String ascope)
    {
        this.scope = ascope;
    }

    /**
     * Gets the menu CSS style.
     * @return style
     */
    public String getStyle()
    {
        return style;
    }

    /**
     * Sets the menu CSS style.
     * @param string style
     */
    public void setStyle(String string)
    {
        style = string;
    }
    
    //DW/2668/BeginPatch
    /**
     * Gets the base context of the Url.
     * @return basecontext
     */
    public String getBasecontext()
    {
        return basecontext;
    }

    /**
     * Sets the base context of the Url.
     * @param string abasecontext
     */
    public void setBasecontext(String aBasecontext)
    {
    	basecontext = aBasecontext;
    }
    //DW/2668/EndPatch

}

⌨️ 快捷键说明

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