springmvc重定向(springmvc教程三)

版权声明:随意转载。 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;
	}

猜你喜欢

转载自blog.csdn.net/dengjili/article/details/84500142
今日推荐