SpringMVC的数据响应(页面跳转、回写数据)

2023-11-12

一、SpringMVC的数据响应

01-SpringMVC的数据响应-数据响应方式

  • 页面跳转
    ①、直接返回字符串
    ②、通过ModelAndView对象返回
  • 回写数据
    ①、直接返回字符串
    ②、返回对象或集合

02-SpringMVC的数据响应-页面跳转-返回字符串形式

  • 直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。
    在这里插入图片描述
  • 转发:forward:/WEB-INF/views/index.jsp
  • 重定向:redirect:/index.jsp,前面之所以不写/WEB-INF/views,是因为重定向,客户端再次访问,WEB-INF是一位受保护得文件夹,外界是无法访问的。

03-SpringMVC的数据响应-页面跳转-返回ModelAndView形式1

  • 在Controller中方法返回ModelAndView对象,并且设置视图名称
package com.itheima.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/quick2")
    public ModelAndView save2(){
        /*
        * Model模型:作用是封装数据
        * View视图:作用展示数据
        * */
        ModelAndView modelAndView = new ModelAndView();
        //设置视图名称
        modelAndView.setViewName("index");
        return modelAndView;
    }
}

在这里插入图片描述

  • 上面我们可以设置了View,但是Model是空的,那么接下来我们进行设置Model。通过ModelAndView的addObject()方法设置
@RequestMapping(value="/quick2")
public ModelAndView save2(){
    ModelAndView modelAndView = new ModelAndView();
    //设置模型数据
    modelAndView.addObject("username","itcast");
    //设置视图名称
    modelAndView.setViewName("success");

    return modelAndView;
}

在这里插入图片描述

04-SpringMVC的数据响应-页面跳转-返回ModelAndView形式2

  • 在Controller中方法形参上直接声明ModelAndView,无需在方法中自己创建,在方法中直接使用该对象设置视图,同样可以跳转页面。
  • SpringMVC对应的方法的参数,可以帮助进行相对应的注入。下面SpringMVC在解析save3()方法的时候,发现ModelAndView需要SpringMVC进行注入,那么SpringMVC将会自动进行注入。
@RequestMapping(value="/quick3")
public ModelAndView save3(ModelAndView modelAndView){
    modelAndView.addObject("username","itheima");
    modelAndView.setViewName("success");
    return modelAndView;
}

//将Model和View拆开,分别进行设置
@RequestMapping("/quick4")
public String save4(Model model){
    //model进行参数添加,进行存储数据
    model.addAttribute("username","Hello SpringMVC");
    return "success";//视图,将以字符串的形式返回
}

在这里插入图片描述

05-SpringMVC的数据响应-页面跳转-返回ModelAndView3

  • 在Controller方法的形参上可以直接使用原生的HttpServeltRequest对象,只需声明即可;因为SpringMVC将自动进行注入.
@RequestMapping(value="/quick5")
public String save5(HttpServletRequest request){
    request.setAttribute("username","辣子鸡");
    return "success";
}

06-SpringMVC的数据响应-回写数据-直接回写字符串

  • 通过SpringMVC框架注入的response对象,使用response.getWriter().print(“hello world”) 回写数据,此时不需要视图跳转,业务方法返回值为void
@RequestMapping(value="/quick6")
public void save6(HttpServletResponse response) throws IOException {
    response.getWriter().print("hello itcast");
}
  • 将需要回写的字符串直接返回,但此时需要通过@ResponseBody注解告知SpringMVC框架,方法返回的字符串不是跳转是直接在http响应体中返回
@RequestMapping(value="/quick7")
@ResponseBody  //									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringMVC的数据响应(页面跳转、回写数据) 的相关文章

  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 【linux】buff/cache手动释放

    在云上跑了一个深度学习的东西 但是数据量实在太大 为了加速 我就直接将数据集全部加载到内存中 毕竟对于GPU云服务器来说 内存和GPU比起来实在不算钱 但是运行top指令发现 linux中的buff cache占比相当大 但没发现占用这个的
  • Python 程序设计习题(3) —— 程序控制结构

    目录 1 Python 习题部分 2 Python 习题讲解 while 循环 if else条件分支语句 for 循环 其他 1 Python 习题部分 要想学习一门语言 便少不了练习 故附上部分 Python 习题 供大家学习参考 如有
  • Ted 带你学习数据结构 之 二叉堆(Binary Heap)

    二叉堆 Binary Heap 1 structure property Heap 堆 是一个除了底层节点外的完全填满的二叉树 底层可以不完全 左到右填充节点 a heap is a binary tree that completely
  • vue3中全局引入less

    1 安装less less loader yarn add less less loader 2 安装style resources loader yarn add style resources loader 3 安装vue cli pl
  • Spring中对Hibernate 的简单封装原理

    开篇提示 本文以spring2 5 6为基准展开 如文中有误欢迎指出 开篇大家可以思考一些问题 1 spring中对于hibernate的整合是怎样的 2 spring为什么要对hibernate做进一步的封装 这样做的好处是什么 我的讲解
  • springboot配置跨mapper.xml的全局变量

    springboot配置跨mapper xml的全局变量 有这样的需求 mybatis框架的mapper xml 即映射文件里 如果需要配置一个全局变量 然后 在所有的mapper xml里都能拿到使用 这需求也不苛刻吧 后来查了下 发现对
  • java8新特性 ---译

    Java并没有没落 人们很快就会发现这一点 欢迎阅读我编写的Java 8介绍 本教程将带领你一步一步地认识这门语言的新特性 通过简单明了的代码示例 你将会学习到如何使用默认接口方法 Lambda表达式 方法引用和重复注解 看完这篇教程后 你
  • QT从入门到实战x篇_31_QFile文件读写操作&QFileInfo实现基本文件信息读取(QFile进行基本文件操作;二进制文件读写;文本文件读写)

    上篇QT从入门到实战x篇 30 绘图设备 QPixmap QBitmap QImage和 QPicture QPixmap QBitmap绘制及保存 QImage像素操作 QPicture记录和重现 及之前的博文介绍了绘图事件及设备的相关内
  • 黑苹果键盘对应的相应按键

    更多精彩内容 请见 http www 16boke com Command键 PS2键盘对应Alt键 USB键盘对应Win键 Option键 PS2键盘对应Win键 USB键盘对应Alt键 更多精彩内容 请见 http www 16boke
  • 现代控制理论-工程数学基础(5)-欧拉公式证明

    Introduction 这一部分内容主要以学习截图为主 方便自己回顾 给大家推荐一个非常优秀的B站uper 所有内容均出自他的课程 网站链接分享在此DR CAN Ph D in Dynamics and Control 机器人工程师 致敬
  • [游戏开发]Unity Profiler真机调试

    网上教程有很多 我这先记录遇到的问题 问题 adb搜索设备不到设备 手机要开启USB调试 不然会出现搜索空列表的情况 下面是列表空与不空的对比 问题 adb检测到了设备 但显示unauthorized 例如上图 1 找到你的电脑用户文件下的
  • 你该了解的自动化测试工具:Selenium控制浏览器的常用方法!

    Selenium怎么来的 Selenium这个词 是化学元素硒 Se 的意思 在软件测试领域 它是绝对的自动化测试开源项目的标杆 取这个名字也是有讲究的 在当时乃至如今的软件测试领域 QTP UFT 占有率非常高 Quick Test Pr
  • 【unity】error CS0246: The type or namespace name ‘xxx‘ could not be found

    可能性一 VScode中各项目的目标框架不一致 通过菜单栏 项目 属性 应用程序 目标框架 可以检查各目标框架是否一致 是否有效 并没有 补充 如果无法打开这个窗口 可能是由于vs将访问项目属性默认设置为了false 可以通过菜单栏的 工具
  • 【快速实现List转Map,stream去重、过滤、筛选、拼接方法的使用】

    一 List转List List对象转List单字段 List
  • 基于SSM的遂川特产销售管理系统

    项目背景 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 遂川特产销售系统当然也不能排除在外 遂川特产销售系统是以实际运用为开发背景 运用软件工程开发方法 采用SSM技术构建的一个
  • QT界面美化与添加多个界面

    一 在QT界面中添加图片 首先在工程中添加源文件 右键选择class1 选择Add new 如下图 添加完成之后会出现源文件夹目录 然后右键选择 qrc文件 然后选择Open in Edit 5 再点击鼠标位置 创建目录 只留下 表示根目录
  • VS Code 源码分析 - 多语言实现

    NO 1 前言 传统前端 App 多语言最简单的实现可以由一套响应式数据流管理系统来托管多语言文案 切换语言时通过数据流的变化使得界面根据文案重新渲染 但由于 VS Code 架构的复杂性 需要有一套能兼容 Electron 渲染窗口 Ch
  • Jedis介绍及配置(Java操作Redis)

    Jedis介绍及配置 Java操作Redis 一 Jedis是什么 jedis就是基于java语言的redis客户端 集成了redis的命令操作 提供了连接池管理 redis cli是redis官方提供的客户端 可以看作一个shell程序
  • [ctfshow]web入门——命令执行(web54-web71)

    文章目录 system过滤 web54 web55 web56 web57 disabled function绕过 web58 web59 web60 web61 web62 web63 web64 web65 wbe66 web67 we
  • SpringMVC的数据响应(页面跳转、回写数据)

    SpringMVC的数据响应 一 SpringMVC的数据响应 01 SpringMVC的数据响应 数据响应方式 02 SpringMVC的数据响应 页面跳转 返回字符串形式 03 SpringMVC的数据响应 页面跳转 返回ModelAn
Powered by Hwhale