通过SpringMVC的方式实现转发和重定向:
无需视图解析器
Spring的配置文件:已经注掉了视图解析器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.zyh.controller"/><mvc:default-servlet-handler/><mvc:annotation-driven/>
<!--    &lt;!&ndash;视图解析器&ndash;&gt;<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean>--><bean name="/test" class="com.zyh.controller.HelloController"/>
</beans>
编写Controller

转发

  • 方式一: 直接拼接要跳转的页面
package com.zyh.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ModelController {@RequestMapping("/m1/t1")public String test1(Model model) {model.addAttribute("msg","ModelTest1");//转发方式一return "/index.jsp";}
}

测试:可以看到我们地址栏的URL没有发生变化就跳转到了Index.jsp首页。

  • 方式二: forward:要跳转的页面
return "forward:/index.jsp";

测试:也可以跳转到我的首页

重定向:

package com.zyh.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ModelController {@RequestMapping("/m1/t1")public String test1(Model model) {model.addAttribute("msg","ModelTest1");//重定向return "redirect:/index.jsp";}
}

测试:也同样跳转到我的首页,但仔细看就发现我的地址栏的URL发生了变化。

使用视图解析器:
在Spring的配置文件中注入视图解析器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:component-scan base-package="com.zyh.controller"/><mvc:default-servlet-handler/><mvc:annotation-driven/><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><bean name="/test" class="com.zyh.controller.HelloController"/>
</beans>

编写Controller
转发:

    @RequestMapping("m1/t2")public String test2(Model model) {model.addAttribute("msg","ModelTest2");//有视图解析器转发return "test";}

启动Tomcat服务器测试:地址栏URL没有发生变化

重定向:

    @RequestMapping("m1/t2")public String test2(Model model) {model.addAttribute("msg","ModelTest2");//有视图解析器转发return "redirect:/index.jsp";}

测试:地址栏URL发生了变化,页面成功跳转。

总结:
1、资源路径问题
符号 描述
/ 代表根目录
. / 代表当目录
. . / 代表上一级目录
2、转发和重定向的区别
转发 重定向
地址栏URL是否变化 不变化 变化
请求次数 一次请求 两次请求
访问资源层次 转发只能访问内部资源 重定向可以访问外部资源
行为层次 转发是服务器的行为 重定向是客户端行为,它改变浏览器与服务器之间数据通信的地址,相当于浏览器重新访问的地址

SpringMVC学习(四)结果跳转的方式:转发和重定向相关推荐

  1. (转)SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72231763 之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBa ...

  2. (转)SpringMVC学习(五)——SpringMVC的参数绑定

    http://blog.csdn.net/yerenyuan_pku/article/details/72511611 SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案 ...

  3. SpringMVC学习

    SpringMVC介绍 SpringMVC是什么? SpringMVC和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来: SpringMVC ...

  4. SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)

    文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...

  5. JavaEE 企业级分布式高级架构师(四)SpringMVC学习笔记(4)

    SpringMVC学习笔记 高级应用篇 ControllerAdvice @ControllerAdvice @ModelAttribute 作用于方法 作用于方法参数 @InitBinder @Ex ...

  6. b站尚硅谷springmvc学习视频:springmvc文档

    文章目录 一.SpringMVC简介 (b站尚硅谷springmvc学习视频:springmvc文档) 1.什么是MVC 2.什么是SpringMVC 3.SpringMVC的特点 二.HelloWo ...

  7. 狂神说SpringMVC学习笔记

    目录 P1.前言 1.回顾MVC 1.1.什么是MVC 1.2.Model1时代 1.3.Model2时代 1.4.回顾Servlet 2.什么是SpringMVC 2.1.概述 2.2.中心控制器 ...

  8. SpringMVC学习(五)——零配置实现SpringMVC

    文章目录 1.引言 2.搭建过程 2.1 开发环境搭建 2.2 项目搭建 2.2.1 首先看`web.xml`配置 2.2.2 增加`WebApplicationInitializer`的实现类 2. ...

  9. SpringMVC学习笔记(二)常用注解

    SpringMVC学习笔记(二)常用注解 1.RequestParam 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必 ...

  10. SpringMVC学习笔记

    文章目录 SpringMVC学习笔记 Spring MVC 什么是 MVC 设计模式? Spring MVC 的核心组件 Spring MVC 的工作流程 如何使用? Spring MVC 注解 Sp ...

最新文章

  1. 2020未来科学大奖获奖名单揭晓
  2. 转: Python集合(set)类型的操作
  3. Hyperic 脚本服务(Script service)配置
  4. matlab中rms代表什么_工业铝型材名称中夹杂的字母含义代表什么
  5. 结合awk列举大于指定容量大小所有文件目录
  6. ASP.NET Core 2.2 项目升级至 3.0 备忘录
  7. iApp对接hybbs社区APP源码
  8. 更换分布式文件系统副本组成员的硬件或操作系统——第一步:计划
  9. web怎么在圆圈里画半html,在WEB里绘制爱心
  10. javaScript、PHP连接外卖小票机打印机方案(调用佳博、芯烨等)
  11. delphi下使用indy进件socket通信的简单实例介绍
  12. 三星s8 android版本,三星S8有几个版本?三星S8和三星S8+(plus)各个版本详细区别对比评测...
  13. kafka数据同步Elasticsearch深入详解
  14. vue实现简单搜索功能
  15. 保千里打令V10S上海体验秀 智能手机迎来全景时代
  16. Oracle存储过程中声明数组
  17. 一、初级篇——指针(*)、取地址()、解引用(*)与引用()的区别
  18. 手机 9006 端口 不断的闪掉
  19. 【公开课】如何使用Arm-2D在小资源Cortex-M处理器芯片中实现图形界面?
  20. 如何减少手机辐射?——七招减少手机对您的危害

热门文章

  1. 乘风破浪:LeetCode真题_019_Remove Nth Node From End of List
  2. js中的instanceof运算符
  3. [Erlang危机](5.1.0)VM检测概述
  4. Python学习(5)——内置函数
  5. Android 游戏开发中横竖屏切换问题
  6. 拓端tecdat|Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
  7. 拓端tecdat|R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
  8. 拓端tecdat|stata具有异方差误差的区间回归
  9. 随机森林 ---sklearn
  10. linux下的osd服务,OSD通知来到GNOME Shell