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

📄 drofloactionservlet.java

📁 一个工作流设计及定义的系统,可以直接与数据库结合进行系统工作流程的定义及应用.
💻 JAVA
字号:
/* * Copyright (c) 2005, John Mettraux, OpenWFE.org * All rights reserved. *  * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions are met: *  * . Redistributions of source code must retain the above copyright notice, this *   list of conditions and the following disclaimer.   *  * . Redistributions in binary form must reproduce the above copyright notice,  *   this list of conditions and the following disclaimer in the documentation  *   and/or other materials provided with the distribution. *  * . Neither the name of the "OpenWFE" nor the names of its contributors may be *   used to endorse or promote products derived from this software without *   specific prior written permission. *  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  * POSSIBILITY OF SUCH DAMAGE. * * $Id: DrofloActionServlet.java,v 1.34 2005/05/17 16:40:20 jmettraux Exp $ *///// DrofloControlServlet.java//// jmettraux@openwfe.org//// generated with // jtmpl 1.1.00 16.08.2003 John Mettraux (jmettraux@openwfe.org)//package openwfe.org.droflo;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import openwfe.org.misc.WebUtils;import openwfe.org.engine.expressions.BuildException;/** * Controller * * <p><font size=2>CVS Info : * <br>$Author: jmettraux $ * <br>$Id: DrofloActionServlet.java,v 1.34 2005/05/17 16:40:20 jmettraux Exp $ </font> * * @author jmettraux@openwfe.org */public class DrofloActionServlet    extends javax.servlet.http.HttpServlet{    private final static org.apache.log4j.Logger log = org.apache.log4j.Logger        .getLogger(DrofloActionServlet.class.getName());    //    // CONSTANTS & co    public final static String ACTION = "action";    public final static String A_LOAD = "load";    public final static String A_REMOVE = "remove";    public final static String A_OUTPUT = "output";    public final static String A_UP = "moveup";    public final static String A_DOWN = "movedown";    public final static String A_ADD = "addexpression";    public final static String A_EDIT = "edit";    public final static String A_UPDATE_EXP = "updateexpression";    public final static String A_UPDATE_FLOW_NAME = "updateflowname";    public final static String A_UPDATE_SUBPROCESS_NAME = "updatesubprocessname";    public final static String A_CREATE_SUBPROCESS = "createsubprocess";    public final static String A_REMOVE_SUBPROCESS = "removesubprocess";    public final static String A_NEW_FLOW = "newflow";    public final static String A_TOGGLE_HELP = "togglehelp";    public final static String A_UNDO = "undo";    public final static String P_FLOW_URL = "flowUrl";    //public final static String P_SUBPROCESS_PATH = "subProcessPath";    public final static String P_SUBPROCESS_EXP = "subProcessExp";    public final static String P_EXPID = "expId";    public final static String P_EXPNAME = "expName";    public final static String P_NEW_EXPRESSION_NAME = "newExpName";    public final static String P_FLOW_NAME = "flowName";    public final static String P_FLOW_REVISION = "flowRevision";    public final static String P_SUBPROCESS_NAME = "subProcessName";    public final static String P_OLD_SUBPROCESS_NAME = "old_subProcessName";    //    // FIELDS    //    // CONSTRUCTORS    //    // METHODS from HttpServlet    public void service        (final HttpServletRequest req, final HttpServletResponse res)    throws         ServletException, IOException    {        log.debug("service()");        String action = req.getParameter(ACTION);        if (action == null)        {            doEnter(req, res);            return;        }        log.debug("service() action is >"+action+"<");        DrofloSession session = DrofloSession.getOrCreateSession(req);        //        // forcing out of edition mode        if ("false".equals(req.getParameter(A_EDIT)))            session.setInEditMode(false);        //        // should we stack for an undo ?        if ( ! (action.equals(A_TOGGLE_HELP) ||                action.equals(A_LOAD) ||                action.equals(A_OUTPUT) ||                action.equals(A_EDIT) ||                action.equals(A_UNDO)))        {            session.stackForUndo();        }        //        // process actions        if (action.equals(A_UNDO))        {            session.popForUndo();            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_UPDATE_EXP))        {            try            {                if ( ! "cancel".equals(req.getParameter("button")))                {                    session.updateExpression(req);                }                else                {                    session.unloadExpressionToEdit();                }            }            catch (RenderingException ee)            {                log.debug("Failed to update expression", ee);                session.setException(ee);            }            WebUtils.forward(req, res, "/view.jsp");            return;        }        session.unloadExpressionToEdit();            // no need to have an expression to update                if (action.equals(A_UPDATE_FLOW_NAME))        {            String flowName = req.getParameter(P_FLOW_NAME);            String flowRevision = req.getParameter(P_FLOW_REVISION);            session.getFlowDefinition().getId()                .setWorkflowDefinitionName(flowName);            session.getFlowDefinition().getId()                .setWorkflowDefinitionRevision(flowRevision);            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_UPDATE_SUBPROCESS_NAME))        {            String oldExpId = req.getParameter(P_SUBPROCESS_EXP);            String newName = req.getParameter(P_SUBPROCESS_NAME);            session.getFlowDefinition()                .changeSubProcessDefinitionName(oldExpId, newName);            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_CREATE_SUBPROCESS))        {            String subProcessExp = req.getParameter(P_SUBPROCESS_EXP);            String newSubProcessName = req.getParameter(P_SUBPROCESS_NAME);            session.getFlowDefinition()                .createSubDefinition(subProcessExp, newSubProcessName);            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_REMOVE_SUBPROCESS))        {            final String subProcessExp = req.getParameter(P_SUBPROCESS_EXP);            session.getFlowDefinition().removeSubDefinition(subProcessExp);            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_LOAD))        {            try            {                session.loadWorkflow(req.getParameter(P_FLOW_URL));            }            catch (BuildException be)            {                log.debug("Failed to load flow", be);                session.setException(be);            }            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_NEW_FLOW))        {            session.newFlowDefinition();            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_TOGGLE_HELP))        {            session.toggleHelp();            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_REMOVE))        {            try            {                session.removeExpression(req.getParameter(P_SUBPROCESS_EXP));            }            catch (Exception e)            {                log.debug("Failed to remove exp", e);                session.setException(e);            }            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_EDIT))        {            session.loadExpressionToEdit(req.getParameter(P_SUBPROCESS_EXP));            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_OUTPUT))        {            try            {                res.setContentType("text/xml");                session.outputDefinitionAsXml(res.getWriter());            }            catch (Exception e)            {                log.debug("Failed to output expression as XML", e);                session.setException(e);            }            return;        }        if (action.equals(A_UP) || action.equals(A_DOWN))        {            try            {                session.moveExpression                    (action, req.getParameter(P_SUBPROCESS_EXP));            }            catch (Exception e)            {                log.debug("Failed to '"+action+"' exp", e);                session.setException(e);            }            WebUtils.forward(req, res, "/view.jsp");            return;        }        if (action.equals(A_ADD))        {            try            {                session.addExpression                    (req.getParameter(P_NEW_EXPRESSION_NAME),                     req.getParameter(P_SUBPROCESS_EXP));            }            catch (Exception e)            {                log.debug("Failed to '"+action+"' exp", e);                session.setException(e);            }            WebUtils.forward(req, res, "/view.jsp");            return;        }        //        // unknown action        log.debug("Unknown action '"+action+"'");        session.setException            (new openwfe.org.OpenWfeException("Unknown action '"+action+"'"));        WebUtils.forward(req, res, "/view.jsp");    }    private void doEnter        (HttpServletRequest req, HttpServletResponse res)    throws         ServletException, java.io.IOException    {        HttpSession session = req.getSession(true);        DrofloSession dfSession = (DrofloSession)session            .getAttribute(req.getContextPath()+DrofloSession.DROFLO_SESSION);        if (dfSession == null)        {            WebUtils.forward(req, res, "/load.jsp");            return;        }        WebUtils.forward(req, res, "/view.jsp");    }}

⌨️ 快捷键说明

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