java - Spring MVC 将 HTTP POST 请求转发到另一个 Controller 中的 GET 请求处理程序

标签 java spring jsp model-view-controller

我正在尝试让我的 Controller 将 POST 请求转发到另一个带有一些参数的 Controller :

@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";

我面临的问题是/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";
}

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

最佳答案

Is there a way to forward the request to prepareVoterBean as a HTTP GET request?

尝试使用 redirect: 前缀。


return "forward:/question/prepare";

这不是 POST。以下链接可能有用:"22.5.3 Redirecting to views" section .

关于java - Spring MVC 将 HTTP POST 请求转发到另一个 Controller 中的 GET 请求处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15780540/

相关文章:

java - TableModel setCellEditable 并自动将值设置回 false

java - 我想逐行读取文件并拆分字符串以用作新对象的属性

java - Websockets 和负载均衡

javascript - 如何将 onmousemove 函数的最终值放入变量中?

java - JSP 不能在 CQ5 中编译?

java - 如何使用 javax.ws.rs.* 和 Glassfish 从 GET HTTP 方法检索参数?

java - 使用@Cacheable注解时加载ApplicationContext失败

Java Spring - 在 Wildfly 11 中禁用发送到 server.log 的任何日志记录

java - 为什么 Servlet.service() for servlet jsp 会抛出这个异常?

在 Java 中使用 Jsoup 时出现 java.lang.IllegalArgumentException