版权声明:随意转载。 https://blog.csdn.net/dengjili/article/details/84500142
目录
工程代码
github: https://github.com/dengjili/springmvc
页面文件:redirect.jsp
<html>
<body>
<h2>Hello World!</h2>
hehe
<hr/>
<a href="add">add</a>
<hr/>
<a href="add2">add2</a>
<hr/>
<a href="add3">add3</a>
<hr/>
<a href="add4">add4</a>
<hr/>
<a href="add5">add5</a>
</body>
</html>
普通参数跳转
@RequestMapping("/add")
public ModelAndView add() {
// 数据域
ModelAndView mv = new ModelAndView();
mv.addObject("id", "1");
mv.addObject("name", "12");
mv.addObject("age", "135");
mv.setViewName("redirect:./show");
return mv;
}
// 被跳转到
@RequestMapping("/show")
public ModelAndView show(String id, String name, String age) {
logger.debug("id: {}", id);
logger.debug("name: {}", name);
logger.debug("age: {}", age);
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect");
return mv;
}
普通参数跳转
@RequestMapping("/add")
public ModelAndView add() {
// 数据域
ModelAndView mv = new ModelAndView();
mv.addObject("id", "1");
mv.addObject("name", "12");
mv.addObject("age", "135");
mv.setViewName("redirect:./show");
return mv;
}
// 被跳转到页面
@RequestMapping("/show")
public ModelAndView show(String id, String name, String age) {
logger.debug("id: {}", id);
logger.debug("name: {}", name);
logger.debug("age: {}", age);
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect");
return mv;
}
字符串返回页面方式,跳转,正确方式
@RequestMapping("/add2")
public String add2(Model m) {
// 数据域
m.addAttribute("id", "1");
m.addAttribute("name", "12");
m.addAttribute("age", "135");
return "redirect:./show";
}
// 被跳转到页面
@RequestMapping("/show")
public ModelAndView show(String id, String name, String age) {
logger.debug("id: {}", id);
logger.debug("name: {}", name);
logger.debug("age: {}", age);
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect");
return mv;
}
字符串返回页面方式,跳转,错误方式
// 重定向页面,无法获取到值,ModelAndView必须使用向后传递方式,如add3方法
@RequestMapping("/add3")
public String add3(ModelAndView mv) {
// 数据域
mv.addObject("id", "1");
mv.addObject("name", "12");
mv.addObject("age", "135");
return "redirect:./show";
}
// 被跳转到页面
@RequestMapping("/show")
public ModelAndView show(String id, String name, String age) {
logger.debug("id: {}", id);
logger.debug("name: {}", name);
logger.debug("age: {}", age);
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect");
return mv;
}
正常情况是无法传递pojo对象的,只能传递简单的参数,跳转,错误方式
@RequestMapping("/add4")
public String add4(Model m) {
BeanParam param = new BeanParam();
param.setName("张三");
param.setNote("test");
// 数据域
m.addAttribute("param", param);
return "redirect:./showPojo";
}
// 被跳转到页面
@RequestMapping("/showPojo")
public ModelAndView showPojo(BeanParam param ) {
logger.debug("name: {}", param.getName());
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect");
return mv;
}
RedirectAttributes方式,跳转,正常方式
@RequestMapping("/add5")
public String add5(RedirectAttributes ra) {
BeanParam param = new BeanParam();
param.setName("张三");
param.setNote("test");
// 数据域
ra.addFlashAttribute("param", param);
return "redirect:./showPojo2";
}
// 被跳转到页面
// 需要使用@ModelAttribute来接收参数
@RequestMapping("/showPojo2")
public ModelAndView showPojo2(@ModelAttribute("param") BeanParam param ) {
logger.debug("name: {}", param.getName());
ModelAndView mv = new ModelAndView();
mv.setViewName("redirect");
return mv;
}