在SpringMVC中正常的页面转发是通过视图解析器的,视图解析器对view的名字进行拼接,加上前缀和后缀

<!--    视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--        前缀匹配--><property name="prefix" value="/WEB-INF/jsp/"/><!--        后缀匹配--><property name="suffix" value=".jsp"/></bean>

对应的Controller类

@Controller
public class ControllerTest3 {@RequestMapping("/hello1")public String test1(Model model) {model.addAttribute("msg", "Test1");return "test";}
}

下面我们来演示通过SpringMVC实现页面的转发和重定向,而不用视图解析器,这里给出修改过的配置文件

<?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/beanshttps://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"><!--    自动扫描指定的包,该包下面的所有注解类交给IoC容器管理--><context:component-scan base-package="com.zhiying.controller"/><!--    视图解析器-->
<!--    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
<!--        &lt;!&ndash;        前缀匹配&ndash;&gt;-->
<!--        <property name="prefix" value="/WEB-INF/jsp/"/>-->
<!--        &lt;!&ndash;        后缀匹配&ndash;&gt;-->
<!--        <property name="suffix" value=".jsp"/>-->
<!--    </bean>-->
<!--    <bean id="/hello" class="com.zhiying.controller.ControllerTest1"/>--></beans>

来一个Controller控制器类

package com.zhiying.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ResultSpringMVC {@RequestMapping("/t1")public String test1(Model model) {//转发(默认的)model.addAttribute("msg","test1");return "/WEB-INF/jsp/test.jsp";}@RequestMapping("/t2")public String test2(Model model) {//转发 (forward)model.addAttribute("msg","test2");return "forward:/WEB-INF/jsp/test.jsp";}@RequestMapping("/t3")public String test3(Model model) {//重定向 (redirect)model.addAttribute("msg","test3");return "redirect:/index.jsp";}
}

还有一个web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--    配置DispatchServlet,其本质是一个Servlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

最后是jsp文件


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
${msg}
</body>
</html>

这样可以得到

如果我们加上视图解析器,那么转发只需要return要转发的名字即可,如果要重定向,则需要写上redirect:+要转发的全路径

这里我们在web下建一个aa的包,该包下写一个aa.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>$Title$</title>
</head>
<body>
hello
</body>
</html>

然后把Controller类改为如下,即是在有视图解析器的情况下

package com.zhiying.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ResultSpringMVC {@RequestMapping("/t1")public String test1(Model model) {//转发(默认的)model.addAttribute("msg","test1");return "test";}@RequestMapping("/t2")public String test2(Model model) {//重定向 (redirect)model.addAttribute("msg","test3");return "redirect:aa/aa.jsp";}
}

SpringMVC中转发和重定向相关推荐

  1. 141 springmvc中 转发 与 重定向

    2019独角兽企业重金招聘Python工程师标准>>> 1.效果 这里以修改为demo 1.1 重定向(不推荐) return "redirect:manageDepart ...

  2. SpringMVC(二)——转发和重定向、处理前端请求的数据(普通字符串/对象)

    文章目录 1. 转发和重定向 2. 处理前端请求的数据 2.1 普通字符串 2.2 对象 1. 转发和重定向 转发:url不会发生变化 (查询前端固定模板的数据) @RequestMapping(&q ...

  3. SpringMVC之——转发与重定向

    与视图解析器的关系 有视图解析器时转发和重定向都可以成功, 无视图解析器时转发需要补全路径才能成功,重定向不能访问WEB-INF下的页面(如图中的test.jsp) 视图解析器配置在web.xml中绑 ...

  4. #SpringMVC:转发、重定向(关键字方式) #forward、redirect关键字 @FDDLC

    示例: 关于在SpringMVC中使用forward.redirect关键字的说明: 1.这两种方式都不经过视图解析器,因此需要自己加前后缀. 2.[SpringMVC中使用关键字的重定向]和[传统的 ...

  5. 解决问题:SpringMvc中转发的html文件中文是乱码

    目录 1.环境说明,以及前言 2.问题描述: 3.失败的方法(这里写失败并不代表在其他情况不管用) 3.1 html网页本身编码不是UTF-8(推荐尝试) 3.2 web.xml中没有设置配置编码方式 ...

  6. Servlet中转发和重定向的路径问题以及表单提交路径问题

    一.请求转发与响应重定向的种类 有两种方式获得Servlet 转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher( ...

  7. SpringMVC核心技术---转发和重定向

    @Controller public class Mycontroller {//转发@RequestMapping("/adduser")public String add(Ht ...

  8. 【SpringMVC】Servlet转发和重定向的区别

    1. 概述 转发和重定向是Servlet中进行页面跳转的两种方式,下图展示了其工作原理,左图为转发,右图为重定向. 从上图可以看出,二者最大的区别就是:转发是在服务器内部进行的,只有一次请求响应:而重 ...

  9. springmvc java中转发_Springmvc中的转发重定向和拦截器的示例

    本文介绍了Springmvc中的转发重定向和拦截器的示例,分享给大家,具体如下: 可变参数在设计方法时,使用 数据类型...来声明参数类型,例如: public static void functio ...

最新文章

  1. 技嘉主板bios设置键盘不能用_BIOS不再硬梆梆、全新技嘉主板BIOS设置就算不是玩家也能轻松搞定...
  2. python能做什么游戏ll-是Python的语法LL(1)吗?
  3. 电子产品设计流程_产品设计“学习、就业、留学”全攻略
  4. Asp.Net Core 2.1+的视图缓存(响应缓存)
  5. 2019-03-09-算法-进化(买卖股票的最佳时机 II)
  6. java 生成校验验证码_java生成验证码并进行验证
  7. //监测网络状态(AFNetworking) 服务端 客户端
  8. 组件和高阶组件区别_为什么要对高阶组件使用代码拆分
  9. win10搭建java开发环境_如何在WIN10搭建Java开发环境
  10. ajax简单校验用户名是否存在
  11. Spring事务总结(一) 内部调用事务失效、异常回滚
  12. typescript map转对象_TypeScript 快速上手及学习笔记 - JoeYoung
  13. VS 2010 for SharePoint
  14. java 既不是内部命令也不是外部命令的解决办法
  15. 4款idea主题,非常的炫酷
  16. My Fifteenth Page - 快乐数 - By Nicolas
  17. 带有鸿蒙logo的壁纸,鸿蒙OS Logo曝光
  18. Streamset数据同步报错问题
  19. 经典算法 之 子数组换位问题
  20. 【python牛客刷题】——深度学习第一弹

热门文章

  1. 知识图谱-远程监督关系提取
  2. laravel sql多个orWhere条件时数据查询错误
  3. [manacher] hdu 3294 Girls#39; research
  4. [摘记]数值方法12——常微分方程组的积分
  5. 北京西格玛大厦微软社区精英 Visual Studio 2010 技术交流会记录
  6. 实现一个简单的HTTP
  7. JMeter中使用“用户自定义变量”实现参数化
  8. html中的数字选框,带有复选框和数字类型的HTML表单提交与PHP?
  9. ih5怎么切换下一个页面_区块链是下一个风口?那PPT该怎么做?
  10. 学习前端开发,自学真的能成功?