5

我写了以下代码:

@Controller
    @RequestMapping("something")
    public class somethingController {
       @RequestMapping(value="/someUrl",method=RequestMethod.POST)
       public String myFunc(HttpServletRequest request,HttpServletResponse response,Map model){
        //do sume stuffs
         return "redirect:/anotherUrl"; //gets redirected to the url '/anotherUrl'
       }

      @RequestMapping(value="/anotherUrl",method=RequestMethod.POST)
      public String myAnotherFunc(HttpServletRequest request,HttpServletResponse response){
        //do sume stuffs
         return "someView"; 
      }
    }

我如何能够重定向到请求方法为 POST 的“anotherUrl”请求映射?

4

1 回答 1

12

Spring Controller 方法可以是 POST 和 GET 请求。

在您的场景中:

@RequestMapping(value="/anotherUrl",method=RequestMethod.POST)
  public String myAnotherFunc(HttpServletRequest request,HttpServletResponse response){
    //do sume stuffs
     return "someView"; 
  }

你想要这个 GET 因为你正在重定向到它。因此,您的解决方案将是

  @RequestMapping(value="/anotherUrl", method = { RequestMethod.POST, RequestMethod.GET })
      public String myAnotherFunc(HttpServletRequest request,HttpServletResponse response){
        //do sume stuffs
         return "someView"; 
      }

注意:在这里,如果您的方法通过@requestParam 接受一些请求参数,那么在重定向时您必须传递它们。

只需此方法所需的所有属性都必须在重定向时发送......

谢谢你。

于 2013-09-02T05:55:03.673 回答