Java中原生的重定向和请求转发
重定向:response.sendRedirect(url) 如果有参数,就只将参数拼接在url 上
请求转发:request.getRequestDispatcher(url).forward(request,response) 请求转发的参数一般存放在request 域中
在spring 中提供的重定向的方式(当然可以使用原生的重定向)主要介绍带参的重定向
1. 将参数放在Model 中
public String Test(Model model){
int id =5;
model.addAttributes("id",id);
return "redirect:/user/{id}";
}
这样传递的URL:/user/5
目标Controller 接收参数:
@GetMapping("/user/{id}")
public void ToController(Model model,@PathVariable("id") Interget id){.....}
很遗憾的是:测试失败报错model 中没有“id” 尚待解决
Model:可以作为controller 的入参,同时可以向页面传递数据(在有引擎模板的时候在页面中使用el 语句获取里面的值)本质上数据是保存在session 中的;
数据的领域模型也叫做Model:这是一个抽象的概念
2. 直接将数据拼接在URL后面
return “redirect:/user?id =”+id;
直接拼接参数