使用 forward 和 request 实现跳转和参数传递
时间: 2024-09-23 20:16:49 浏览: 38
request和response实现跳转和重定向的区别
4星 · 用户满意度95%
在Spring MVC框架中,`forward()`和`redirect()`方法用于处理请求的转发和重定向,它们可以在控制器之间转移控制流程并可以带参数。
1. `ModelAndView.forward()`方法:这是在同一个HTTP上下文中将请求从当前视图传送到另一个视图的方式。你可以通过设置`ModelAndView`对象的`viewName`属性指定目标视图,并使用`model.addAttribute()`添加模型数据。代码示例如下:
```java
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("targetView");
modelAndView.addObject("key", "value"); // 添加参数
getRedirectStrategy().forward(request, response, modelAndView);
```
2. `HttpServletResponse.sendRedirect()`方法(间接通过`RedirectView`):这种方式会发送一个HTTP重定向到指定URL,通常用于浏览器间的跳转。如果你想包含参数,需要将参数拼接到地址栏,如`response.sendRedirect("targetUrl?param1=value1¶m2=value2")`。这种方式不会保留原来请求的上下文,所以不适合传递复杂的模型数据。
阅读全文