SpringMvc ModelAndView 视图解析器和Servlet详解

2023-11-15

一:设置ModelAndView对象,根据View的名称,和视图解析器跳转到指定的页面。

页面:视图解析器的前缀+view name +视图解析器的后缀

<!-- 配置视图渲染器 -->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <!-- 将视图名 渲染后视图的前缀 -->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!-- 渲染后视图的后缀 -->
    <property name="suffix" value=".jsp"/>
</bean>

 

@RequestMapping(value="/hello.do")
	public ModelAndView hello(){
		ModelAndView mv = new ModelAndView();
		mv.setViewName("hello");
		mv.addObject("msg", "annotation ------");
		return mv;
	}

 

二:通过ServletAPI对象来实现。不需要视图解析器的配置

通过HttpServletResponse输入内容。

通过HttpServletResponse实现重定向,转发。

public void hello(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
    //内容输出
    resp.getWriter().println("hello springmvc");
    //重定向
    resp.sendRedirect("/jsp/hello.jsp");
    //转发
    req.getRequestDispatcher("index.jsp").forward(req,resp);
}

三:通过springmvc实现重定向和转发(未配置视图解析器)

 @RequestMapping("/hello1.do")
	public String hello1(ModelMap map){
         //转发 
         return "index.jsp";
	}
    @RequestMapping("/hello2.do")
	public String hello2(ModelMap map){
         return "forward:index.jsp";
	}
	@RequestMapping("/hello3.do")
	public String hello3(ModelMap map){
		map.addAttribute("msg", "helloworld");
		return "redirect:/WEB-INF/jsp/hello.jsp";
	}

四:通过springmvc实现重定向和转发(配置视图解析器)

  @RequestMapping("/hello.do")
	public String hello(ModelMap map){
         //转发 
         return "hello";
	}
 直接转发至/WEB-INF/jsp/hello.jsp页面。具体要看视图解析器配置的前缀和后缀。
//重定向
   @RequestMapping("/hello2.do")
	public String hello2(ModelMap map){
         //报错示例1 
         return "redirect:hello";
         //报错示例2
         return "redirect:hello.jsp";
         //正解
         return "redirect:hello.do";
	}

页面访问hello2.do。发现跳转至hello。因@RequestMapping注释没有hello。故报404错误。

 

 

这种重定向其实是跳转至另一个.do。不会使用配置的视图解析器。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMvc ModelAndView 视图解析器和Servlet详解 的相关文章

随机推荐

  • 关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器

    对于多量的 复杂的 有规律的控制器使用代码生成 动画状态代码控制 1 每个动画状态 比如进入状态 离开状态 等都有可能需要代码来参与和处理 比如 进入这个动画单元后做哪些事情 来开这个动画单元后做哪些事情 为了解决这个问题 unity允许每
  • [ C++ ] — 内联函数

    1 什么是内联函数 其定义位于类声明中的函数都将自动成为内联函数 也可以使用inline限定符 在类声明之外定义成员函数 使之成为内联函数 2 内联函数的作用 引入内联函数的目的是为了解决程序中函数调用的效率问题 程序在编译器编译的时候 编
  • vue使用CSS插件scss时代码报红

    vue使用CSS插件scss时代码报红 问题描述 解决方案 1 打开设置 2 进入setting json文件修改 3 修改setting json文件 解决结果 问题描述 刚开始下载别人的代码 安装依赖运行起来后 样式引用没有问题 发现样
  • 华为OD机试 Python 最佳对手

    题目 在一个游戏中 队伍之间的对战要基于双方的实力来匹配 为了保证游戏体验 我们希望两支队伍的实力差别不超过一个上限值 现在 你将获得若干队伍的实力值 你的任务是进行队伍匹配 要求实力差最小且不超过上限 然后计算这些成功匹配的队伍间的实力差
  • 转:脱字符"^"的由来

    从事IT业二十多年 今年才知道 这个符号叫脱字符 由于最近在学Python的re正则表达式处理 就查了下这个名称的由来 转发如下 脱字符 就是说 在文章中 某个字 打漏了 打脱了 打落了 要在这个中间 把打落了 的字 插入进去 就是使用的这
  • css3设置背景图片的大小

    background size 设置背景图片的大小 以长度值或百分比显示 还可以通过cover和contain来对图片进行伸缩 语法 1 background size auto 默认值 不改变背景图片的高度和宽度 2 background
  • Eigen——问题:无法打开源文件Eigen/Dense,已解决

    刚刚开始准备按照官网的文档实验代码就出现了这个错误 surprise Solution 1 下载Eigen 并解压 1 CSDN http download csdn net download airaybaiju 10237226 2 官
  • 为什么电源中经常用肖特基二极管

    如下图为两个开关电源电路图 下面的二极管都是肖特基二极管 那么为什么电源中都是用肖特基二极管呢 主要有两个原因 1 肖特基二极管导通压降低 一般电源电流比较大 导通压降低意味着损失的功耗低 2 肖特基二极管响应时间快 一般开关电源是通过内部
  • 编程用for和while语句编写10以内相加的c语言程序,C语言循环结构程序设计

    内容详解 while语句 do while语句 for语句 循环嵌套 break和continue语句 实例展示 热身小练 打印6行6列的 矩阵 两个 之间用空格隔开 include int main for int i 1 i lt 6
  • Python-PyCrypto 下载

    python库 用于信息安全的 叫PyCrypto Linux https www dlitz net software pycrypto Windows http www voidspace org uk python modules s
  • VS2005(VC++)远程调试方法

    仅我目前了解很多人还在使用成本很高的本地调试方法 即在需要调试的机器上安装VS环境 这样的好处就是直接 但是成本很高 要在目标机器安装一个VS的Copy 国内可能不是问题 还有源代码安全问题 同步问题等等 开始 已知 A B两个服务器 如果
  • 代码规范及CodeReview要点

    为什么80 的码农都做不了架构师 gt gt gt 一 代码规范的要点 代码规范主要分为风格规范与设计规范两大类 1 代码风格规范 主要是文字上的规定 看似表面文章 实际上非常重要 具体有如下几个方面 1 缩进 2 行宽 3 断行 空白行
  • 单片机c51中断 — 中断键控流水灯

    项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第五章 中断 在第4章的实例2中 按键检测是采用查询法进行的 其流程图如图所示 问题是这样的 由于查询法 按键查询 标志位修改及彩灯循环几个环节是串联关系 当CPU运行于彩灯
  • java 远程从FTP服务器下载文件到本地

    package com cassiatwig liuliangqianbao util import org apache commons net ftp FTPClient import org apache commons net ft
  • HTTP慢速拒绝服务攻击(Slow HTTP Dos)

    HTTP慢速拒绝服务攻击简介 HTTP慢速攻击是利用HTTP合法机制 以极低的速度往服务器发送HTTP请求 尽量长时间保持连接 不释放 若是达到了Web Server对于并发连接数的上限 同时恶意占用的连接没有被释放 那么服务器端将无法接受
  • 如何c语言看字节大小,如何计算C语言结构占用的字节数

    全部展开 结构的数据类型很多 我们不会一long而就 让我们直接看一下相同数据结构的几种书写格式 格式一 01 struct tagPhone 02 03 char A 04 int B 05 short C 06 Phone 格式二 01
  • Matlab统计分析 -- 聚类算法模型

    统计分析 聚类算法模型 距离分析 数据标准化 欧氏距离与量纲有关 因此 有时需要对数据进行预处理 如标准化等 在MATLAB中的命令是zscore 调用格式 Z zscore X 输入X表示N行p列的原始观测矩阵 行为个体 列为指标 输出Z
  • vofuria的开发(4)更换目标图片(target)

    1 首先进入vuforia的官网 接下来的操作就很简单了 如下图中所示 这里如果你不是Unity开发就选择SDK下载 里面有一个 bat的文件一个 xml的文件 将文件放到将这两个文件放到 vuforia sdk Android sampl
  • [Error] invalid operands of types ‘int‘ and ‘double‘ to binary ‘operator%‘

    在运行下面的代码时 编译器报错 Error invalid operands of types int and double to binary operator include
  • SpringMvc ModelAndView 视图解析器和Servlet详解

    一 设置ModelAndView对象 根据View的名称 和视图解析器跳转到指定的页面 页面 视图解析器的前缀 view name 视图解析器的后缀