Spring MVC将HTTP POST请求转发给另一个控制器中的GET请求处理程序

Mid*_*lue 5 java model-view-controller spring jsp

我试图让我的控制器将POST请求转发给另一个带有一些参数的控制器:

@RequestMapping(method=RequestMethod.POST)
public String processSubmit(@Valid Voter voter, BindingResult result, 
      //...
      request.setAttribute("firstName", voter.getFirstName());
      request.setAttribute("lastName", voter.getLastName());
      request.setAttribute("ssn", voter.getSsn());
      logger.info("VoterID exists, forwarding to /question/prepare");
      return "forward:/question/prepare";
Run Code Online (Sandbox Code Playgroud)

我面临的问题是/ question/prepare指向仅处理HTTP GET请求的Controller方法.

@RequestMapping(value="/prepare", method=RequestMethod.GET)
public String prepareVoterBean(@RequestParam String firstName, 
        @RequestParam String lastName, @RequestParam String ssn, Model model) {
    logger.info("QuestionController got GET REQUEST for " + firstName + lastName + ssn);
    VoterBean bean = new VoterBean();
    bean.setFirstName(firstName);
    bean.setLastName(lastName);
    bean.setSsn(ssn);

    model.addAttribute("questions",bean);
    return "questionPage";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将prepareVoterBean的请求作为HTTP GET请求转发?谢谢.

Vit*_*aly 3

有没有办法将请求作为 HTTP GET 请求转发到prepareVoterBean?

尝试使用redirect:前缀。


return "forward:/question/prepare";
Run Code Online (Sandbox Code Playgroud)

这不是邮政。以下链接可能有用:“22.5.3 重定向到视图”部分