参考文档:https://www.cnblogs.com/jpfss/p/9542550.html
今天在学习springMVC时,想要实现一个登录成功之后显示一个表中的所有内容的功能,当时写的controller时返回到对应的jsp中的,但是发现运行之后,只显示了一个界面,没有我想要的内容。于是,灵机一动,发现我不是要返回到对应的jsp,而是直接获得结果再返回到jsp,从而将数据显示出来。
这就相当于从一个controller直接跳转到另一个controller中,就像我要实现的功能一样,想要直接从登录的controller中直接跳到显示内容的controller中。下面写一下三种方法:
方法一(不带参数)
使用ModelAndView
return new ModelAndView("redirect:/index");
index就是我们的目标controller
方法二(不带参数)
返回String类型
return "redirect:/ userList ";
当然还有其他方法,在这里不在一一赘述,以上就是不带参数的重定向
下面来说一下带参数的重定向
方法三(带参数)
使用ModelAndView手动拼接url
return new ModelAndView("redirect:/index?a=1&b=2...");
方法四(带参数)
用RedirectAttributes,这个是发现的一个比较好用的一个类,这里用它的addAttribute方法,它自动给你拼接url。
使用方法:
attr.addAttribute(“param”, value);
return “redirect:/userList”;
这样在toController这个方法中就可以通过获得参数的方式获得这个参数,再传递到页面。传过去的url还是和自己手动拼接的方式一样的。
@RequestMapping("/save")
public String save(RedirectAttributes attr){
attr.addAttribute("msg", "参数");
return "redirect:/index";
}
前端取数据直接使用EL表达式就可以了