转发带有其他参数的POST请求

0x5*_*94E 3 post spring spring-mvc forward

有没有办法将带有其他参数的POST请求从一个控制器转发到另一个控制器?

假设我有这样的表格:

<form action"${contextPath}/controller1/post">
  <input name="field1" type="text"/>
  <input name="field2" type="text"/>
  <input value="submit" type="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

该表格将发布到controller1.post()方法。

但是现在我有了另一个控制器- controller2也有一个post方法。我现在要发布到,controller2.post因此可以在转发到之前向请求中添加一些参数controller1。有没有办法做到这一点?

小智 5

您可以尝试,如果这是您想要的

@RequestMapping(value = "/controller1/{id}", method = RequestMethod.Post)
public void doSomething(
        @PathVariable Long id, 
        HttpServletRequest request, 
        HttpServletResponse response) {

     request.setAttribute("id",Id);

     RequestDispatcher rd = request.getRequestDispatcher("your url/controller2");
     rd.forward(request, response);
}
Run Code Online (Sandbox Code Playgroud)

然后在controller2中

@RequestMapping(value = "/controller2", method = RequestMethod.Post)
public string doSomething2(Model model,       
        HttpServletRequest request, 
        HttpServletResponse response) {

     model.addAttribute("id", request.getAttribute("id"));

    return "myView";
}
Run Code Online (Sandbox Code Playgroud)