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

📄 submitservlet.java

📁 dspace 用j2ee架构的一个数字图书馆.开源程序
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            HttpServletRequest request, HttpServletResponse response,            SubmissionInfo subInfo) throws ServletException, IOException,            SQLException, AuthorizeException    {        String buttonPressed = UIUtil.getSubmitButton(request, "submit_back");        if (buttonPressed.equals("submit_back"))        {            // User wants to continue with submission            int previous = UIUtil.getIntParameter(request, "previous_step");            doStep(context, request, response, subInfo, previous);        }        else if (buttonPressed.equals("submit_remove"))        {            // User wants to cancel and remove            // Cancellation page only applies to workspace items            WorkspaceItem wi = (WorkspaceItem) subInfo.submission;            wi.deleteAll();            JSPManager.showJSP(request, response,                    "/submit/cancelled-removed.jsp");            context.complete();        }        else if (buttonPressed.equals("submit_keep"))        {            // Save submission for later - just show message            JSPManager.showJSP(request, response, "/submit/saved.jsp");        }        else        {            doStepJump(context, request, response, subInfo);        }    }    /**     * Process button click on "review submission" page     *      * @param context     *            current DSpace context     * @param request     *            current servlet request object     * @param response     *            current servlet response object     * @param subInfo     *            submission info object     */    private void processReview(Context context, HttpServletRequest request,            HttpServletResponse response, SubmissionInfo subInfo)            throws ServletException, IOException, SQLException,            AuthorizeException    {        String buttonPressed = UIUtil.getSubmitButton(request, "submit_cancel");        if (buttonPressed.equals("submit_cancel"))        {            doCancellation(request, response, subInfo, REVIEW_SUBMISSION,                    REVIEW_SUBMISSION);        }        else if (buttonPressed.equals("submit_next"))        {            // If the user is performing the initial submission            // of an item, we go to the grant license stage            if (!isWorkflow(subInfo))            {                // proceed to next step conditional on CC                int nextStep = CreativeCommons.isEnabled() ? CC_LICENSE                        : GRANT_LICENSE;                userHasReached(subInfo, nextStep);                doStep(context, request, response, subInfo, nextStep);                context.complete();            }            else            {                // The user is performing an edit as part                // of a workflow task, so we take them                // back to the relevant perform task page                request.setAttribute("workflow.item", subInfo.submission);                JSPManager.showJSP(request, response,                        "/mydspace/perform-task.jsp");            }        }        else if (buttonPressed.equals("submit_prev"))        {            // Back to file upload            doStep(context, request, response, subInfo, UPLOAD_FILES);        }        else        {            doStepJump(context, request, response, subInfo);        }    }    /**     * Process the input from the license page     *      * @param context     *            current DSpace context     * @param request     *            current servlet request object     * @param response     *            current servlet response object     * @param subInfo     *            submission info object     */    private void processLicense(Context context, HttpServletRequest request,            HttpServletResponse response, SubmissionInfo subInfo)            throws ServletException, IOException, SQLException,            AuthorizeException    {        String buttonPressed = UIUtil.getSubmitButton(request, "submit_cancel");        if (buttonPressed.equals("submit_grant"))        {            // License granted            log.info(LogManager.getHeader(context, "accept_license",                    getSubmissionLogInfo(subInfo)));            // Add the license to the item            Item item = subInfo.submission.getItem();            EPerson submitter = context.getCurrentUser();            // FIXME: Probably need to take this from the form at some point            String license = subInfo.submission.getCollection().getLicense();            item.licenseGranted(license, submitter);            // Start the workflow            WorkflowManager.start(context, (WorkspaceItem) subInfo.submission);            // FIXME: pass in more information about what happens next?            showProgressAwareJSP(request, response, subInfo, "/submit/complete.jsp");            context.complete();        }        else if (request.getParameter("submit_reject") != null)        {            // User has rejected license.            log.info(LogManager.getHeader(context, "reject_license",                    getSubmissionLogInfo(subInfo)));            // Show information page.            JSPManager.showJSP(request, response,                    "/submit/license-rejected.jsp");        }        else        {            doStepJump(context, request, response, subInfo);        }    }    /**     * Process the input from the CC license page     *      * @param context     *            current DSpace context     * @param request     *            current servlet request object     * @param response     *            current servlet response object     * @param subInfo     *            submission info object     */    private void processCC(Context context, HttpServletRequest request,            HttpServletResponse response, SubmissionInfo subInfo)            throws ServletException, IOException, SQLException,            AuthorizeException    {        String buttonPressed = UIUtil.getSubmitButton(request, "submit_next");        // Firstly, check for a click of the cancel button.        if (buttonPressed.equals("submit_cancel"))        {            doCancellation(request, response, subInfo, CC_LICENSE, CC_LICENSE);        }        else if (buttonPressed.equals("submit_prev"))        {            // Back to review submission            doStep(context, request, response, subInfo, REVIEW_SUBMISSION);        }        else if (buttonPressed.equals("submit_next"))        {            // Update user's progress            userHasReached(subInfo, GRANT_LICENSE);            // User has clicked "Next"            doStep(context, request, response, subInfo, GRANT_LICENSE);            context.complete();        }        else if (buttonPressed.equals("submit_no_cc"))        {            // Skipping the CC license - remove any existing license selection            CreativeCommons                    .removeLicense(context, subInfo.submission.getItem());            userHasReached(subInfo, GRANT_LICENSE);            doStep(context, request, response, subInfo, GRANT_LICENSE);            context.complete();        }        else        {            // RLR hack - need to distinguish between progress bar real            // submission            String ccLicenseUrl = request.getParameter("cc_license_url");            if ((ccLicenseUrl != null) && (ccLicenseUrl.length() > 0))            {                Item item = subInfo.submission.getItem();                // set the CC license                CreativeCommons.setLicense(context, item, ccLicenseUrl);                userHasReached(subInfo, GRANT_LICENSE);                doStep(context, request, response, subInfo, GRANT_LICENSE);                context.complete();            }            else            {                doStepJump(context, request, response, subInfo);            }        }    }    //****************************************************************    //****************************************************************    //             METHODS FOR SHOWING FORMS    //****************************************************************    //****************************************************************    /**     * Process a click on a buttonin the progress bar. to jump to a step. This     * method should be called when it has been determined that no other button     * has been pressed.     *      * @param context     *            DSpace context object     * @param request     *            the request object     * @param response     *            the response object     * @param subInfo     *            SubmissionInfo pertaining to this submission     */    private void doStepJump(Context context, HttpServletRequest request,            HttpServletResponse response, SubmissionInfo subInfo)            throws ServletException, IOException, SQLException    {        // Find the button that was pressed. It would start with        // "submit_jump_".        String buttonPressed = UIUtil.getSubmitButton(request, "");        // Now, if the request was a multi-part (file upload), we need to        // get the original request back out, as the wrapper causes problems        // further down the line.        if (request instanceof FileUploadRequest)        {            FileUploadRequest fur = (FileUploadRequest) request;            request = fur.getOriginalRequest();        }        int nextStep = -1;        if (buttonPressed.startsWith("submit_jump_"))        {            // Button on progress bar pressed            try            {                nextStep = Integer.parseInt(buttonPressed.substring(12, 13));            }            catch (NumberFormatException ne)            {                // mangled number                nextStep = -1;            }            // Integrity check: make sure they aren't going            // forward or backward too far            if (nextStep <= SubmitServlet.SELECT_COLLECTION)            {                nextStep = -1;            }            if (!isWorkflow(subInfo) && (nextStep > getStepReached(subInfo)))            {                nextStep = -1;            }        }        if (nextStep == -1)        {            // Either no button pressed, or an illegal stage            // reached. UI doesn't allow this, so something's            // wrong if that happens.            log.warn(LogManager.getHeader(context, "integrity_error", UIUtil                    .getRequestLogInfo(request)));            JSPManager.showIntegrityError(request, response);        }        else        {            // Do the relevant step            doStep(context, request, response, subInfo, nextStep);        }    }    /**     * Display the page for the relevant step. Pass in a step number between     * SubmitServlet.INITIAL_QUESTIONS and SubmitServlet.SUBMISSION_COMPLETE -     * other cases (such as cancellations and multi-file upload interactions)     * are handled elsewhere.     *      * @param context     *            DSpace context     * @param request     *            the request object     * @param response     *            the response object     * @param subInfo     *            SubmissionInfo pertaining to this submission     * @param step     *            the step number to display     */    private void doStep(Context context, HttpServletRequest request,            HttpServletResponse response, SubmissionInfo subInfo, int step)            throws ServletException, IOException, SQLException    {        // determine collection        Collection c = subInfo.submission.getCollection();                if ( step >= EDIT_METADATA_1 && step <= EDIT_METADATA_2 )        {        	// requires configurable form info per collection        	request.setAttribute( "submission.inputs", inputsReader.getInputs(c.getHandle()));        	// also indicate page           	request.setAttribute( "submission.page", new Integer(step) );		showProgressAwareJSP(request, response, subInfo,                  		     "/submit/edit-metadata.jsp");            return;        }        switch (step)        {        case INITIAL_QUESTIONS:            // requires configurable form info per collection            request.setAttribute( "submission.inputs", inputsReader.getInputs(c.getHandle()));            showProgressAwareJSP(request, response, subInfo,                		 "/submit/initial-questions.jsp");            break;                    /* EDIT_METADATA cases handled above */                    case UPLOAD_FILES:            showFirstUploadPage(context, request, response, subInfo);            break;        case CHOOSE_FILE:            showProgressAwareJSP(request, response, subInfo,            		         "/submit/choose-file.jsp");            break;        case FILE_LIST:            showUploadFileList(request, response, subInfo, false, false);            break;        case REVIEW_SUBMISSION:            // requires c

⌨️ 快捷键说明

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