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

📄 portletinvoker.java

📁 GridSphere 门户 提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目下开发的
💻 JAVA
字号:
/* * @author <a href="mailto:novotny@gridsphere.org">Jason Novotny</a> * @version $Id: PortletInvoker.java 4848 2006-06-10 18:06:15Z novotny $ */package org.gridsphere.portletcontainer.impl;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.gridsphere.layout.event.PortletWindowEvent;import org.gridsphere.portlet.service.PortletServiceException;import org.gridsphere.portlet.service.spi.PortletServiceFactory;import org.gridsphere.portletcontainer.*;import org.gridsphere.services.core.registry.PortletRegistryService;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/** * The <code>PortletInvoker</code> provides static lifecycle routines for performing portlet operations on * concrete portlets. * * @see org.gridsphere.portletcontainer.impl.PortletDispatcherImpl */public class PortletInvoker {    private Log log = LogFactory.getLog(PortletInvoker.class);    private PortletRegistryService registry = null;    public PortletInvoker() {        try {            registry = (PortletRegistryService) PortletServiceFactory.createPortletService(PortletRegistryService.class, true);        } catch (PortletServiceException e) {            log.error("Unable to init services! ", e);        }    }    /**     * Performs service method on a concrete portlet instance     *     * @param concretePortletID the concrete portlet id     * @param render            the default portlet render     * @param req               the <code>HttpServletRequest</code>     * @param res               the <code>HttpServletResponse</code>     * @throws PortletDispatcherException if a dispatching error occurs     * @throws IOException                if an I/O error occurs     */    public void service(String concretePortletID, DefaultPortletRender render, HttpServletRequest req, HttpServletResponse res) throws IOException, PortletDispatcherException {        log.debug("in service " + concretePortletID);        String appID = registry.getApplicationPortletID(concretePortletID);        ApplicationPortlet appPortlet = registry.getApplicationPortlet(appID);        if (appPortlet != null) {            PortletDispatcher dispatcher = appPortlet.getPortletDispatcher(req, res);            dispatcher.service(render, req, res);        } else {            log.info("in service: Unable to find portlet in registry: " + concretePortletID);        }    }    /**     * Performs action performed method on a concrete portlet instance     *     * @param concretePortletID the concrete portlet id     * @param action            the default portlet action     * @param req               the <code>HttpServletRequest</code>     * @param res               the <code>HttpServletResponse</code>     * @throws PortletDispatcherException if a dispatching error occurs     */    public void actionPerformed(String concretePortletID, DefaultPortletAction action, HttpServletRequest req, HttpServletResponse res) throws PortletDispatcherException {        log.debug("in actionPerformed " + concretePortletID);        String appID = registry.getApplicationPortletID(concretePortletID);        ApplicationPortlet appPortlet = registry.getApplicationPortlet(appID);        if (appPortlet != null) {            PortletDispatcher dispatcher = appPortlet.getPortletDispatcher(req, res);            dispatcher.actionPerformed(action, req, res);        } else {            log.info("in actionPerformed: Unable to find portlet in registry: " + concretePortletID);        }    }    /**     * Performs doTitle method on a concrete portlet instance     *     * @param concretePortletID the concrete portlet id     * @param req               the <code>HttpServletRequest</code>     * @param res               the <code>HttpServletResponse</code>     * @throws PortletDispatcherException if a dispatching error occurs     */    public void doTitle(String concretePortletID, HttpServletRequest req, HttpServletResponse res) throws PortletDispatcherException {        log.debug("in doTitle " + concretePortletID);        String appID = registry.getApplicationPortletID(concretePortletID);        ApplicationPortlet appPortlet = registry.getApplicationPortlet(appID);        if (appPortlet != null) {            PortletDispatcher dispatcher = appPortlet.getPortletDispatcher(req, res);            dispatcher.doTitle(req, res);        } else {            log.info("in actionPerformed: Unable to find portlet in registry: " + concretePortletID);        }    }    /**     * Performs window event method on a concrete portlet instance     *     * @param concretePortletID the concrete portlet id     * @param winEvent          the window event     * @param req               the <code>HttpServletRequest</code>     * @param res               the <code>HttpServletResponse</code>     * @throws PortletDispatcherException if a dispatching error occurs     */    public void windowEvent(String concretePortletID, PortletWindowEvent winEvent, HttpServletRequest req, HttpServletResponse res) throws PortletDispatcherException {        log.debug("in windowEvent " + concretePortletID);        String appID = registry.getApplicationPortletID(concretePortletID);        ApplicationPortlet appPortlet = registry.getApplicationPortlet(appID);        if (appPortlet != null) {            PortletDispatcher dispatcher = appPortlet.getPortletDispatcher(req, res);            dispatcher.windowEvent(winEvent, req, res);        } else {            log.info("in windowEvent: Unable to find portlet in registry: " + concretePortletID);        }    }    public void initPortletWebApp(PortletWebApplicationLoader appLoader, HttpServletRequest req, HttpServletResponse res) throws PortletDispatcherException {        // Initialize all concrete portlets for each application portlet        PortletDispatcher portletDispatcher = appLoader.getPortletDispatcher();        // initialize the application portlet        log.debug("initializing portlet web app " + appLoader.getWebApplicationName());        portletDispatcher.init(req, res);    }    /**     * Lohgout a portlet web application     *     * @param appLoader the web application loader     * @param req       the <code>HttpServletRequest</code>     * @param res       the <code>HttpServletResponse</code>     * @throws PortletDispatcherException if a dispatching error occurs     */    public void logoutPortletWebApp(PortletWebApplicationLoader appLoader, HttpServletRequest req, HttpServletResponse res) throws PortletDispatcherException {        PortletDispatcher portletDispatcher = appLoader.getPortletDispatcher();        portletDispatcher.logout(req, res);    }    /**     * Shuts down a portlet web application     *     * @param webAppLoader the name of the JSR portlet web application loader     * @param req          the <code>HttpServletRequest</code>     * @param res          the <code>HttpServletResponse</code>     * @throws PortletDispatcherException if a dispatching error occurs     */    public void destroyPortletWebApp(PortletWebApplicationLoader webAppLoader, HttpServletRequest req, HttpServletResponse res) throws PortletDispatcherException {        // First destroy all concrete portlets for each application portlet        log.debug("in destroyPortletWebApp " + webAppLoader.getWebApplicationName());        // destroy the application portlet        webAppLoader.getPortletDispatcher().destroy(req, res);    }    /**     * Returns the application portlet id from the supplied concrete portlet id     *     * @param concretePortletID the concrete portlet id     * @return the application portlet id     */    protected static String getApplicationPortletID(String concretePortletID) {        int i = concretePortletID.lastIndexOf(".");        if (i < 0) return "";        return concretePortletID.substring(0, i);    }}

⌨️ 快捷键说明

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