springMVC 页面导航的方式

本文介绍了SpringMVC中实现页面导航的方法,包括转发和重定向的两种方式,并详细解释了如何通过字符串或ModelAndView实现这两种导航。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面导航分为两种:

1、转发 2、重定向

springMVC有以下两种方式实现页面的转发或重定向:

1、返回字符串

2、使用ModelAndView

在SpringMVC中两种导航进行页面导航的时候使用不同的前缀指定转发还是重定向

前缀:

                 转发: forward:url 默认

                 重定向: redirect:url

1 .转发方式到一个jsp页面

1.1字符串方式转发

@RequestMapping("test01-1")
public String test011(HttpServletRequest request){
request.setAttribute("teamName","湖人");
//return "ok";//默认方式:由视图解析器处理之后将逻辑视图转为物理资源路径
return "forward:/jsp/ok.jsp";//当添加了forward前缀之后,视图解析器中的前后缀就失
效了,必须自己编写绝对路径
}

1.2ModelAndView转发

@RequestMapping("test01-2")
public ModelAndView test012(){
ModelAndView mv=new ModelAndView();
mv.addObject("teamName","热火");
//mv.setViewName("ok");//默认方式:由视图解析器处理之后将逻辑视图转为物理资源路径
mv.setViewName( "forward:/jsp/ok.jsp");//当添加了forward前缀之后,视图解析器中
的前后缀就失效了,必须自己编写绝对路径
return mv;
}

2.重定向方式到一个jsp页面

2.1字符串方式重定向

@RequestMapping("test02-1")
public String test021(HttpServletRequest request){
request.setAttribute("teamName","勇士");//页面上无法获取到存储在request作用域
中的值,请求中断了
return "redirect:/jsp/ok.jsp";//当添加了redirect前缀之后,视图解析器中的前后缀
就失效了,必须自己编写绝对路径
}

2.2ModelAndView重定向方式

@RequestMapping("test02-2")
public ModelAndView test022(){
ModelAndView mv=new ModelAndView();
mv.addObject("teamName","huangfeng");
//存储在request作用域中的值以参数的形式追加在URL后面
//http://localhost:8080/jsp/ok.jsp?teamName=huangfeng&teamId=1002
mv.addObject("teamId","1002");
mv.setViewName( "redirect:/jsp/ok.jsp");//当添加了redirect前缀之后,视图解析
器中的前后缀就失效了,必须自己编写绝对路径
return mv;
}



http://localhost:8080/jsp/ok.jsp?teamName=huangfeng&teamId=1002

从地址栏中获取的参数值:

<h1>teamName=${param.teamName},teamId=${param.teamId}</h1>

3.重定向或者转发到控制器

@RequestMapping("test03-1")
public ModelAndView test031(HttpServletRequest request){
System.out.println("test03-1---转发到控制器");
ModelAndView mv=new ModelAndView();
mv.addObject("teamName","达拉斯小牛");
mv.setViewName("forward:/navigation/test01-1");
return mv;
}
@RequestMapping("test03-2")
public ModelAndView test032(HttpServletRequest request){
System.out.println("test03-1---重定向到控制器");
ModelAndView mv=new ModelAndView();
mv.addObject("teamName","kaierteren");
mv.addObject("teamId","1003");
mv.setViewName("redirect:/navigation/test01-1");
return mv;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值