1. 简单例子
在 MVC 控制器方法中,常见的返回类型是 void。 类型中可以添加模型数据,并且可以指定视图; 该类型的返回值可以跳转到视图,但不能携带数据; void类型主要用在异步请求中,只返回数据,不跳转视图。
由于该类型未能实现数据与视图的解耦,因此通常选择返回类型。 那么作为返回值类型时,如何将数据带入视图页面呢?
这需要模型参数类型来实现。 通过该参数类型,可以添加需要在视图中显示的信息。
控制器方法如下:
@RequestMapping("/modelTest")
public String modelTest(Model model){
model.addAttribute("msg","这是一个Spring MVC 程序!");
return "success";
}
2.请求转发视图
发送请求时,可以使用: 来实现转发功能
:也可以从一个请求跳转到另一个请求
控制器方法如下:
@RequestMapping("/forwardTest")
public String forwardTest(){
return "forward:/modelTest";
}
注意:当控制器方法中设置的视图名带有“:”前缀时,该视图名不会被配置文件中配置的视图解析器解析,而是会将前缀“:”去掉,剩下的部分用作跳转重定向的最终路径。
4. 重定向和转发的区别
4.1 转发
服务器页面跳转不需要客户端重新发送请求:
特点如下:
1、地址栏中的请求不会改变,仍然显示第一次显示的地址。
2.请求数量,只有1个请求
3.请求域中的数据不会丢失
4、根目录::8080/项目地址/,包含项目的访问地址
4.2 重定向
浏览器端跳转页面需要发送两次请求(第一个是手动,第二个是自动)
特点如下:
1、地址栏地址发生变化,显示最新请求的地址。
2. 请求次数:2次
3. 由于是不同的请求,请求域中的数据会丢失。
4、根目录::8080/不包含项目名称
4.3 比较
如果这篇文章对你有帮助,别忘了给我点赞、转发、评论。 下一期见。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。