将请求转发到弹簧控制器

liv*_*ves 2 servlets spring-mvc spring-rest

从 servlet ,我将请求转发到 spring 控制器,如下所示

RequestDispatcher rd = request.getRequestDispatcher("/myController/test?reqParam=value");
rd.forward(request, response);
Run Code Online (Sandbox Code Playgroud)

为了将参数传递给 spring 控制器,我将其作为转发 URL 中的请求参数传递。

有更好的方法吗?

我可以在转发期间作为方法参数传递给 spring 控制器,而不是传递请求参数吗?

vph*_*nyc 6

/myController/test?reqParam=value当需要时将调用此方法:

@RequestMapping("/myController/test")
public String myMethod(@RequestParam("reqParam") String reqParamValue) {
  return "forward:/someOtherUrl?reqParam="+reqParamValue;  //forward request to another controller with the param and value
}
Run Code Online (Sandbox Code Playgroud)

或者你也可以这样做:

@RequestMapping("/myController/test")
public String myMethod(@RequestParam("reqParam") String reqParamValue,
                       HttpServletRequest request) {
  request.setAttribute("reqParam", reqParamValue);
  return "forward:/someOtherUrl"; 
}
Run Code Online (Sandbox Code Playgroud)