一只倔强的笨猪

【Spring MVC】页面导航

导航

在WEB应用程序开发时,页面跳转有几种方式?
① 服务器转发 ② 客户端重定向
在Spring MVC种导航的两种实现方式:
① 返回字符串(推荐) ② 使用ModelAndView
在Spring MVC种两种导航进行跳转时,前缀不同:
1转发: forward:
2重定向: redirect:

1.转发到页面:

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller("ForwordController")
@RequestMapping("/forward")
public class ForwordController {

	//使用ModelAndView实现转发到jsp页面
	@RequestMapping("demo01")
	public ModelAndView demo01(){
		System.out.println("demo01 is ran...");
		ModelAndView mav = new ModelAndView();
		// 如果转发到jsp页面,不用像下面写的这么复杂,因为他是默认方式
		// mav.setViewName("forward:/exp.jsp");
		mav.setViewName("exp"); //记得创建一个exp.jsp
		return mav;
	}
	
	//使用String类型转发到Controller
	@RequestMapping("demo02")
	public String demo02(){
		System.out.println("demo02 is ran...");
		return "forward:/forward/demo01.xhtml";
	}
}

2.重定向:
Spring MVC的规范是不直接访问jsp页面,所以重定向时就只有Controller。

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller("RedirectController")
@RequestMapping("/redirect")
public class RedirectController {
	@RequestMapping("demo01")
	public String demo01(@RequestParam("goodsId") int goodsId){
		System.out.println("demo01 is ran...");
		System.out.println("goodsId:" + goodsId);
		return "exp"; //创建exp.jsp页面
	}
	
	@RequestMapping("demo02")
	public String demo02(Model model){
		System.out.println("demo02 is ran...");
		model.addAttribute("goodsId", 6);
		return "redirect:/redirect/demo01.xhtml";
		//实现demo02重定向到demo01,并且附带了goodsId的参数
	}
}

项目源代码: 本地下载

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注