Перенаправить на внешний URL с атрибутами post, используя spring MVC - PullRequest
0 голосов
/ 11 апреля 2020

У меня проблема с получением атрибутов после перенаправления на внешний URL. Я получаю значения атрибутов как NULL при перенаправлении на внешний URL, где, как если бы я поместил эти методы в том же веб-приложении, это работает.

Пожалуйста, предложите, что я делаю неправильно, или, если есть какой-либо способ, чтобы я мог передать атрибут в перенаправленный URL и использовать его.

Я не хочу, чтобы атрибуты отображались как Queryparams.

Пример кода приведен ниже.

// Контроллер в app1

@PostMapping("/redirect")
public RedirectView next(RedirectAttributes redirectAttributes, Model model, HttpServletResponse response, HttpServletRequest request) {
    request.setAttribute("payment",new Payment("1","2","3"));
    redirectAttributes.addAttribute("test", "test");

    redirectAttributes.addFlashAttribute("message", "Successfully changed..");
    redirectAttributes.addFlashAttribute("payment1",new Payment("1","2","3"));

    request.setAttribute(
              View.RESPONSE_STATUS_ATTRIBUTE, HttpStatus.TEMPORARY_REDIRECT);
    RedirectView redirectView = new RedirectView("redirect:http://localhost:8085/redirectedPostToPost", true);
    redirectView.addStaticAttribute("payment",new Payment("1","2","3"));
    return redirectView;
}

// Контроллер приложения 2.

@PostMapping("/redirectedPostToPost")
public ModelAndView redirectedPostToPost(@ModelAttribute("message") String message,@ModelAttribute("payment") Payment payment,@ModelAttribute("payment1") Payment payment1, RedirectAttributes redirectAttributes,Model model, HttpServletResponse httpServletResponse, HttpServletRequest request, ModelAndView modelview) {
    logger.info("in redirectedPostToPost:{} : modelview:{}", model, modelview.getModel());
    Map<String, ?> inputFlashMap = RequestContextUtils.getInputFlashMap(request);
    logger.info("flashmap:{}", inputFlashMap);
    return new ModelAndView("about");
}

Благодарю вас, ребята, заранее.

1 Ответ

0 голосов
/ 11 апреля 2020

HTTP поддерживает только перенаправление метода GET. вот подробности почему HTTP не имеет перенаправления POST

Существует обходной путь, по которому вы отправляете данные для просмотра и создаете ФОРМУ в представлении, вы должны использовать все скрытые поля для отправки данных. это будет белая страница. Вы можете автоматически отправить URL перенаправления формы, используя javascript.

...