Example usage for org.springframework.web.servlet.view RedirectView setContextRelative

List of usage examples for org.springframework.web.servlet.view RedirectView setContextRelative

Introduction

In this page you can find the example usage for org.springframework.web.servlet.view RedirectView setContextRelative.

Prototype

public void setContextRelative(boolean contextRelative) 

Source Link

Document

Set whether to interpret a given URL that starts with a slash ("/") as relative to the current ServletContext, i.e.

Usage

From source file:ar.com.zauber.commons.spring.web.SpringWebUtil.java

/**
 * @param url url to redirect to//  w  ww  .ja  v a  2  s  .c o m
 * @return a <code>RedirectView</code> object for url 
 */
public final RedirectView createRedirect(final String url) {
    final RedirectView rv = new RedirectView(url);
    rv.setContextRelative(contextRelative);
    rv.setHttp10Compatible(false);

    return rv;
}

From source file:org.shareok.data.webserv.ServerController.java

@RequestMapping("/server/update")
public ModelAndView serverUpdate(RedirectAttributes redirectAttrs, HttpServletRequest request,
        @ModelAttribute("SpringWeb") RepoServer server) {

    ModelAndView model = new ModelAndView();
    RedirectView view = new RedirectView();
    view.setContextRelative(true);
    RepoServer existingServer = null;/*from   w w  w  .  j  av a  2  s  .  c  om*/

    /**
     * Some server side validation code:
     */
    boolean hasError = false;
    String serverId = (String) request.getParameter("serverId");
    if (null == server) {
        redirectAttrs.addFlashAttribute("errorMessage", "The server information is empty");
        hasError = true;
    }
    String serverName = server.getServerName();
    if (null == serverName || "".equals(serverName)) {
        redirectAttrs.addFlashAttribute("errorMessage", "TThe server name is empty");
        hasError = true;
    }
    if (null == serverId) {
        redirectAttrs.addFlashAttribute("errorMessage", "The server ID is empty");
        hasError = true;
    } else if (serverId.equals("-1")) {
        existingServer = serverService.findServerByName(serverName);
        if (null != existingServer) {
            redirectAttrs.addFlashAttribute("errorMessage", "The server name has been used");
            hasError = true;
        }
    }

    if (hasError == true) {
        view.setUrl("serverError.jsp");
        model.setView(view);
        return model;
    }

    if (null != serverId && serverId.equals("-1")) {
        RepoServer newServer = serverService.addServer(server);
        Map<String, String> repoTypeServerFieldInfo = getRepoTypeServerFieldInfo(request,
                serverService.getRepoTypeServerFields(newServer.getRepoType()));
        serverService.updateRepoTypeServerFieldInfo(repoTypeServerFieldInfo, newServer);
        view.setUrl("/server/config");
        redirectAttrs.addFlashAttribute("message",
                "The new server \"" + newServer.getServerName() + "\" has been added successfully!");
        model.setView(view);
    } else if (null != serverId && !serverId.equals("-1")) {
        existingServer = serverService.updateServer(server);
        Map<String, String> repoTypeServerFieldInfo = getRepoTypeServerFieldInfo(request,
                serverService.getRepoTypeServerFields(existingServer.getRepoType()));
        serverService.updateRepoTypeServerFieldInfo(repoTypeServerFieldInfo, server);
        view.setUrl("/server/config");
        model.setView(view);
        redirectAttrs.addFlashAttribute("message",
                "The server \"" + existingServer.getServerName() + "\" has been updated successfully!");
        return model;
    }
    return model;
}

From source file:org.shareok.data.webserv.RestDspaceDataController.java

@RequestMapping(value = "/rest/{repoTypeStr}/{jobType}", method = RequestMethod.POST)
public ModelAndView sshDspaceSaFImporter(HttpServletRequest request, RedirectAttributes redirectAttrs,
        @PathVariable("repoTypeStr") String repoTypeStr,
        @RequestParam(value = "localFile", required = false) MultipartFile file,
        @PathVariable("jobType") String jobType, @ModelAttribute("SpringWeb") DspaceApiJob job) {
    ModelAndView model = new ModelAndView();

    String filePath = "";

    logger.debug("Start to process the DSpace Rest API request...");

    try {/*from  w  w  w.  j av  a 2  s . c  om*/
        if (null == file || file.isEmpty()) {
            String localFile = (String) request.getParameter("localFile");
            if (!DocumentProcessorUtil.isEmptyString(localFile)) {
                filePath = localFile;
                String safDir = (String) request.getParameter("localSafDir");
                if (!DocumentProcessorUtil.isEmptyString(safDir)) {
                    filePath = safDir + File.separator + filePath;
                }
                String folder = (String) request.getParameter("localFolder");
                if (!DocumentProcessorUtil.isEmptyString(folder)) {
                    filePath = folder + File.separator + filePath;
                }
                String journalSearch = (String) request.getParameter("journalSearch");
                if (null != journalSearch && journalSearch.equals("1")) {
                    filePath = ShareokdataManager.getDspaceUploadPath() + File.separator + filePath;
                } else {
                    filePath = ShareokdataManager.getOuhistoryUploadPath() + File.separator + filePath;
                }
            } else {
                filePath = (String) request.getParameter("remoteFileUri");
            }
        } else {
            filePath = ServiceUtil.saveUploadedFile(file,
                    ShareokdataManager.getDspaceRestImportPath(jobType + "-" + repoTypeStr));
        }
    } catch (Exception ex) {
        logger.error("Cannot upload the file for DSpace import using REST API.", ex);
        model.addObject("errorMessage", "Cannot get the server list");
        model.setViewName("serverError");
        return model;
    }

    DspaceRepoServer server = (DspaceRepoServer) serverService.findServerById(job.getServerId());
    String userId = String.valueOf(request.getSession().getAttribute("userId"));
    job.setUserId(Long.valueOf(userId));
    job.setCollectionId(server.getPrefix() + "/" + job.getCollectionId());
    job.setRepoType(DataUtil.getRepoTypeIndex(repoTypeStr));
    job.setType(DataUtil.getJobTypeIndex(jobType, repoTypeStr));
    job.setStatus(Arrays.asList(RedisUtil.REDIS_JOB_STATUS).indexOf("created"));
    job.setFilePath(filePath);
    job.setStartTime(new Date());
    job.setEndTime(null);

    try {
        RedisJob returnedJob = taskManager.execute(job);

        if (null == returnedJob) {
            throw new JobProcessingException("Null job object returned after processing!");
        }

        int statusIndex = job.getStatus();
        String isFinished = (statusIndex == 2 || statusIndex == 6) ? "true" : "false";

        RedirectView view = new RedirectView();
        view.setContextRelative(true);
        view.setUrl("/report/job/" + String.valueOf(returnedJob.getJobId()));
        model.setView(view);
        redirectAttrs.addFlashAttribute("host",
                serverService.findServerById(returnedJob.getServerId()).getHost());
        redirectAttrs.addFlashAttribute("collection",
                DspaceDataUtil.DSPACE_REPOSITORY_HANDLER_ID_PREFIX + job.getCollectionId());
        redirectAttrs.addFlashAttribute("isFinished", isFinished);
        redirectAttrs.addFlashAttribute("reportPath", DataHandlersUtil
                .getJobReportFilePath(DataUtil.JOB_TYPES[returnedJob.getType()], returnedJob.getJobId()));
        WebUtil.outputJobInfoToModel(redirectAttrs, returnedJob);
    } catch (Exception ex) {
        logger.error("Cannot process the job of DSpace import using REST API.", ex);
        model.addObject("errorMessage", "Cannot process the job of DSpace import using REST API.");
        model.setViewName("serverError");
    }
    return model;
}

From source file:de.interseroh.report.controller.ReportController.java

private void showReportForm(@PathVariable("reportName") String reportName,
        @ModelAttribute("parameterForm") ParameterForm form, ModelAndView modelAndView) {
    RedirectView redirectView = new RedirectView();
    redirectView.setUrl("/reports/{reportName}");
    redirectView.setContextRelative(true);
    redirectView.setPropagateQueryParams(false);
    redirectView.setExposeModelAttributes(true);
    modelAndView.addAllObjects(new ParameterValueMapBuilder().build(form));
    modelAndView.addObject("reportName", reportName);
    modelAndView.setView(redirectView);//  www.  j a  v  a 2  s .  com
}

From source file:org.shareok.data.webserv.UserController.java

@RequestMapping("/user/newPass")
public ModelAndView userNewPass(HttpServletRequest request) {

    ModelAndView model = new ModelAndView();

    String oldPass = (String) request.getParameter("oldPass");
    String newPass = (String) request.getParameter("newPass");
    String newPassConfirm = (String) request.getParameter("newPassConfirm");
    if (null != oldPass && !oldPass.equals("") && null != newPass && !newPass.equals("")
            && null != newPassConfirm && !newPassConfirm.equals("")) {
        if (!newPass.equals(newPassConfirm)) {
            try {
                throw new IncorrectUserCredentialInfoException("The two new passwords do not match!");
            } catch (IncorrectUserCredentialInfoException ex) {
                logger.error(ex);// w w  w .j ava2s .  c  om
                model.addObject("errorMessage", "The two new passwords do not match!");
                model.setViewName("userError");
                return model;
            }
        }
        String email = (String) request.getSession().getAttribute("email");
        RedisUser user = userService.findUserByUserEmail(email);
        if (null == user || !pwAuthenService.authenticate(oldPass, user.getPassword())) {
            String message = null;
            try {
                if (null == user) {
                    message = "User information cannot by found by user email!";
                } else {
                    message = "User old password is incorrect!";
                }
                throw new UserRegisterInfoNotFoundException(message);
            } catch (UserRegisterInfoNotFoundException ex) {
                logger.error(ex);
                model.addObject("errorMessage", message);
                model.setViewName("userError");
                return model;
            }
        }
        // Check if the user is the current user in session
        String sessionId = (String) request.getSession().getId();
        String userSessionId = user.getSessionKey();
        if (null == userSessionId || !userSessionId.equals(sessionId)) {
            try {
                throw new UserRegisterInfoNotFoundException(
                        "The user session ID does not match the current session ID!");
            } catch (UserRegisterInfoNotFoundException ex) {
                logger.error(ex);
                model.addObject("errorMessage", "The user session ID does not match the current session ID!");
                model.setViewName("userError");
                return model;
            }
        }
        String password = pwAuthenService.hash(newPass);
        user.setPassword(password);
        userService.updateUser(user);
        RedirectView view = new RedirectView();
        view.setContextRelative(true);
        view.setUrl("/userProfile");
        model.setView(view);
        return model;
    } else {
        try {
            throw new IncorrectUserCredentialInfoException(
                    "Some password information is empty for resetting user password!");
        } catch (IncorrectUserCredentialInfoException ex) {
            logger.error(ex);
            model.addObject("errorMessage", "Some password information is empty for resetting user password!");
            model.setViewName("userError");
        }
    }
    return model;
}

From source file:de.interseroh.report.controller.ReportController.java

@RequestMapping(method = RequestMethod.GET)
public ModelAndView showReportForm(
        ///*from ww  w.  j a v a2  s  . c o  m*/
        @ModelAttribute ParameterForm parameterForm, //
        @RequestParam MultiValueMap<String, String> requestParams,
        @PathVariable("reportName") String reportName, BindingResult errors) throws BirtReportException {

    logger.debug("executing show report for " + reportName);

    checkPermisionFor(reportName);

    ModelAndView modelAndView = new ModelAndView();

    parameterFormBinder.bind(parameterForm, requestParams, errors);
    parameterFormConverter.convert(parameterForm, errors);

    if (parameterForm.isValid()) {
        Pagination pagination = reportService.getPageInfos(reportName, parameterForm);

        // TODO reportPage
        // if (reportPage.getCurrentPageNumber() > reportPage
        // .getPageNumbers()) {
        // throw new BirtReportException(String.format(
        // "For this report: %s no more pages available",
        // reportName));
        // }
        modelAndView.addObject("pagination", pagination);
        modelAndView.setViewName("/report");
        injectReportUri(parameterForm, modelAndView, reportName);
        configSetter.setVersion(modelAndView);
        configSetter.setBranding(modelAndView);
    } else {
        // show parameters
        RedirectView redirectView = new RedirectView();
        redirectView.setUrl("/reports/{reportName}/params");
        redirectView.setContextRelative(true);
        redirectView.setPropagateQueryParams(false);
        redirectView.setExposeModelAttributes(true);
        modelAndView.setView(redirectView);
        modelAndView.addAllObjects(new ParameterValueMapBuilder().build(parameterForm));
    }

    parameterFormFormatter.format(parameterForm);
    modelAndView.addObject("reportName", reportName);

    return modelAndView;
}

From source file:de.drv.dsrv.utility.spring.web.EnhancedRedirectInternalResourceViewResolver.java

protected View checkAndEnhanceRedirectView(final View view) {
    // Prfe, ob die ber die Basisklasse ermittelte View einen Redirect
    // reprsentiert
    if (view instanceof RedirectView) {
        // Fhre Typumwandlung durch und ermittle gespeicherte URL
        final RedirectView redirectView = (RedirectView) view;
        final String url = redirectView.getUrl();

        // Prfe, ob die gespeicherte URL den Prfix fr eine Pfadangabe
        // relativ zur Basis-URI des Servers ist
        if (url != null && url.startsWith(SERVER_REL_PREFIX)) {
            // Entferne Prfix
            redirectView.setUrl(url.substring(SERVER_REL_PREFIX.length()));

            // URL ist nicht reletiv zur Context Root
            redirectView.setContextRelative(false);
        }/*from  ww w  . java 2 s .c  om*/
    }

    // Gebe View zurck
    return view;
}

From source file:org.shareok.data.webserv.JournalDataController.java

@RequestMapping(value = "/journal/search/{publisher}/date", method = RequestMethod.POST)
public ModelAndView searchJournalArticlesByDate(HttpServletRequest request, RedirectAttributes redirectAttrs,
        @RequestParam(value = "endDate", required = false) String endDate,
        @PathVariable("publisher") String publisher) {

    ModelAndView model = new ModelAndView();
    String startDate = request.getParameter("startDate");
    String affiliate = request.getParameter("affiliate");
    DspaceJournalDataService serviceObj = ServiceUtil.getDspaceJournalDataServInstanceByPublisher(publisher);
    String articlesData = serviceObj.getApiResponseByDatesAffiliate(startDate, endDate, affiliate);
    // ** escape the single quote as the jquery might have problem in parsing the data  **        
    articlesData = articlesData.replace("", "'");
    articlesData = articlesData.replaceAll("\\'", "\\\\'");

    RedirectView view = new RedirectView();
    view.setContextRelative(true);
    view.setUrl("/journal/search/" + publisher + "/date");
    model.setView(view);/*from w ww . ja  v a2s .c o  m*/
    redirectAttrs.addFlashAttribute("publisher", publisher);
    redirectAttrs.addFlashAttribute("startDate", null == startDate ? "" : startDate);
    redirectAttrs.addFlashAttribute("endDate", null == endDate ? "" : endDate);
    redirectAttrs.addFlashAttribute("institutions",
            DataUtil.getJsonArrayFromStringArray(DataUtil.INSTITUTIONS));
    redirectAttrs.addFlashAttribute("articles", null == articlesData ? "" : articlesData);
    return model;
}

From source file:org.shareok.data.webserv.JournalDataController.java

@RequestMapping(value = "/dspace/safpackage/{publisher}/upload", method = RequestMethod.POST)
public ModelAndView safPackageDataUpload(RedirectAttributes redirectAttrs,
        @RequestParam("file") MultipartFile file, @PathVariable("publisher") String publisher) {

    if (!file.isEmpty()) {
        try {//from w ww .j av a 2  s  . com
            String[] filePaths = DspaceJournalServiceManager.getDspaceSafPackageDataService(publisher)
                    .getSafPackagePaths(file);
            if (null != filePaths && filePaths.length > 0) {

                ModelAndView model = new ModelAndView();
                RedirectView view = new RedirectView();
                view.setContextRelative(true);

                List<String> downloadLinks = new ArrayList<>();
                for (String path : filePaths) {
                    String link = DspaceJournalDataUtil.getDspaceSafPackageDataDownloadLinks(path);
                    downloadLinks.add(link);
                }
                ObjectMapper mapper = new ObjectMapper();
                String downloadLink = mapper.writeValueAsString(downloadLinks);
                //                    String uploadFileLink = downloadLink.split("/journal/"+publisher+"/")[1];
                //                    uploadFileLink = uploadFileLink.substring(0, uploadFileLink.length()-1);

                model.setViewName("journalDataUploadDisplay");
                model.addObject("safPackages", downloadLink);
                model.addObject("publisher", publisher);
                //                    model.addObject("uploadFile", uploadFileLink);
                view.setUrl("/dspace/safpackage/ouhistory/display");
                model.setView(view);

                return model;
            } else {
                return null;
            }
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
    } else {
        return null;
    }
    return null;
}

From source file:org.shareok.data.webserv.JournalDataController.java

@RequestMapping(value = "/dspace/safpackage/doi/generate", method = RequestMethod.POST)
public ModelAndView safPackageGenerateByDois(HttpServletRequest request, RedirectAttributes redirectAttrs,
        @RequestParam(value = "multiDoiUploadFile", required = false) MultipartFile file) {
    String singleDoi = (String) request.getParameter("singleDoi");
    String multiDoi = (String) request.getParameter("multiDoi");
    String safPaths = null;/*from   w w w.j  a  v a 2 s .c o m*/
    ByteArrayInputStream stream = null;

    ModelAndView model = new ModelAndView();
    RedirectView view = new RedirectView();
    view.setContextRelative(true);

    if ((null != file && !file.isEmpty()) || null != singleDoi || null != multiDoi) {
        String safFilePath = null;
        try {
            String[] dois;
            if (null != singleDoi) {
                String doi = (String) request.getParameter("doiInput");
                if (null == doi || doi.equals("")) {
                    throw new EmptyDoiInformationException("Empty information from single DOI submission!");
                }
                dois = new String[] { doi };
            } else if (null != multiDoi) {
                String doi = (String) request.getParameter("multiDoiInput");
                if (null == doi || doi.equals("")) {
                    throw new EmptyDoiInformationException("Empty information from multiple DOI submission!");
                }
                dois = doi.trim().split("\\s*;\\s*");
            } else if (null != file && !file.isEmpty()) {
                stream = new ByteArrayInputStream(file.getBytes());
                String doiString = IOUtils.toString(stream, "UTF-8");
                dois = doiString.trim().split("\\s*\\r?\\n\\s*");
            } else {
                throw new EmptyDoiInformationException("Empty DOI information from unknown DOI submission!");
            }
            if (dois != null && dois.length > 0) {

            }
        } catch (Exception ex) {
            logger.error("Cannot generate the SAF packages by the DOIs", ex);
        } finally {
            if (null != stream) {
                try {
                    stream.close();
                } catch (IOException ex) {
                    logger.error("Cannot close the input stream when reading the file containing the DOIs", ex);
                }
            }
        }
        if (null != safFilePath && !safFilePath.equals("")) {
            redirectAttrs.addFlashAttribute("safFilePath", safFilePath);
            view.setUrl(".jsp");
            model.setView(view);
        } else {
            redirectAttrs.addFlashAttribute("errorMessage", "The saf file path is invalid");
            view.setUrl("journalDataUpload.jsp");
            model.setView(view);
        }
    } else {
        redirectAttrs.addFlashAttribute("errorMessage", "The server information is empty");
        view.setUrl("errors/serverError.jsp");
        model.setView(view);
    }
    return model;
}