当前位置: 首页 > news >正文

SpringMVC 学习(五)转发,重定向和传参

6. 转发和重定向

Spring MVC 的底层是 servlet,因此在 Spring MVC 中也存在转发和重定向的概念。

  • 对于转发而言,其目的页面可以在 WEB-INF 目录下
  • 重定向的目的页面不允许在 WEB-INF 目录下,因为重定向相当于用户再次发起一次请求,而用户不允许直接访问 WEB-INF 目录下的资源。

6.1 转发

使用 forward: 即可实现转发

  • 转发至目的页面:forward:目的页面相对站点的路径

    return "forward:WEB-INF/jsp/test.jsp";

  • 转发至控制器:forward:控制器

    return "forward:/restAdd/1/2";

处理器适配器在返回 ModelAndView 时默认使用转发方式

6.2 重定向

使用 redirect: 即可实现重定向

  • 重定向至目的页面:redirect:目的页面相对站点的路径

    return "redirect:index.jsp";

  • 重定向至控制器:redirect:控制器

    return "redirect:/restAdd/1/2";

重定向与转发不可使用 RestFul 风格直接在浏览器带参数进行访问

7. 接收请求参数和数据回显

7.1 请求参数接收

  • 请求参数与被请求函数形参名称相同

    http://localhost:8080/user/rec?name=why

    @Controller
    @RequestMapping("/user")
    public class UserController {@GetMapping("/rec")public String rec(String name, Model model) {System.out.println("name: " + name);model.addAttribute("msg", "name: " + name);return "test";}
    }
    
  • 请求参数与被请求函数形参名称不同

    http://localhost:8080/user/rec?username=why

    @Controller
    @RequestMapping("/user")
    public class UserController {@GetMapping("/rec")public String rec(@RequestParam("username") String name, Model model) {System.out.println("name: " + name);model.addAttribute("msg", "name: " + name);return "test";}
    }
    
  • 被请求函数形参为对象

    http://localhost:8080/user/recObj?id=1&name=why&age=1

    @Controller
    @RequestMapping("/user")
    public class UserController {@GetMapping("/recObj")public String recObj(User user, Model model) {System.out.println("user: " + user);model.addAttribute("msg", "user: " + user);return "test";}
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {private int id;private String name;private int age;
    }
    

7.3 数据回显

(1) ModelAndView

public class HelloController implements Controller {public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {ModelAndView mv = new ModelAndView();mv.addObject("msg","HelloSpringMVC!");mv.setViewName("hello");return mv;}
}

(2) Model

@GetMapping("/recObj")
public String recObj(User user, Model model) {System.out.println("user: " + user);model.addAttribute("msg", "user: " + user);return "test";
}

(3) ModelMap

Model extends ModelMap extends LinkedHashMap<String, Object>

@GetMapping("/recObj")
public String recObj(User user, ModelMap model) {System.out.println("user: " + user);model.addAttribute("msg", "user: " + user);return "test";
}

相关文章:

SpringMVC 学习(五)转发,重定向和传参

6. 转发和重定向 Spring MVC 的底层是 servlet&#xff0c;因此在 Spring MVC 中也存在转发和重定向的概念。 对于转发而言&#xff0c;其目的页面可以在 WEB-INF 目录下。重定向的目的页面不允许在 WEB-INF 目录下&#xff0c;因为重定向相当于用户再次发起一次请求&#xf…...

selenium不定位元素直接使用键盘操作(如弹框操作)

今天在使用selenium进行定位时&#xff0c;发现直接定位不了chrome的弹框&#xff0c;如这种弹框&#xff1a; 使用的是下面这行代码 driver.switch_to.alert.accept() 运行报错&#xff0c;说是没有 alert windown。。。。 啊&#xff1f;难道chrome的弹框不是用alert写的&…...

Inno Setup安装中文语言

以版本6.2.2为例&#xff1a; 默认安装的Inno Setup是不支持中文语言的&#xff0c;需要我们自行下载安装。 一、打开官网Inno Setup Translations (jrsoftware.org) 下载的文件如下 二、然后重命名放到Inno Setup的如下安装目录中 三、然后重启Inno Setup即可。 打包后的…...

【数据库——MySQL】(10)视图和索引

目录 1. 视图1.1 创建视图1.2 查询视图 2. 索引2.1 索引的分类2.2 索引的建立 参考书籍 1. 视图 1.1 创建视图 基础语法&#xff1a; CREATE [OR REPLACE] VIEW 视图名[(列名表)]ASSELECT语句[WITH CHECK OPTION]说明&#xff1a; 在默认情况下&#xff0c;将在当前数据库创…...

No servers available for service: renren…。 Gateway 网关报503错误 ,已解决

目录 环境配置问题描述loadbalancer的作用 环境配置 问题描述 配置spring cloud gateway使用端口访问就可以&#xff0c;使用lb:// 就报503 gateway:routes:- id: admin_routeuri: lb://gulimall-admin # uri: http://localhost:8080predicates:- Path/api/**filter…...

【Spring Cloud】深入理解 Eureka 注册中心的原理、服务的注册与发现

文章目录 前言一、微服务调用出现的问题1.1 服务消费者如何获取服务提供者的地址信息&#xff1f;1.2 如果有多个服务提供者&#xff0c;消费者该如何选择&#xff1f;1.3 消费者如何得知服务提供者的健康状态&#xff1f; 二、什么是 Eureka2.1 Eureka 的核心概念2.2 Eureka 的…...

添加路径到头文件默认搜索路径

在linux环境下写代码&#xff0c;出现函数是从其他文件引用的&#xff0c;需要把该文件的搜索路径添加到当前文件。 注意&#xff0c;除非必要&#xff0c;一般不建议这样做。比较好的方式是写入到CMakeLists或者Makefile中。 一次性生效&#xff0c;命令行输入即可&#xff…...

掌动智能:替代JMeter的压力测试工具有哪些

JMeter是一个广泛使用的开源压力测试工具&#xff0c;但在实际应用中&#xff0c;也有一些其他优秀的替代品可供选择。本文将介绍几个可替代JMeter的压力测试工具&#xff0c;它们在功能、性能和易用性方面都具有独特优势&#xff0c;可以满足不同压力测试需求的选择。 一、Gat…...

Casper Network 构建企业级区块链生态的野望

Casper Network 是基于 Layer1 且图灵完备 Wasm 的智能合约平台&#xff0c;它由唯一可操作的 CBC-Casper Proof-of-Stake (PoS) 共识算法&#xff08;称为 Highway&#xff09;支持&#xff0c;该网络是一个无需许可、去中心化的公共区块链。 Casper Network 主网在 2021 年 4…...

TiDB 7.1.0 LTS 特性解读丨关于资源管控 (Resource Control) 应该知道的 6 件事

TiDB 7.1.0 LTS 在前段时间发布&#xff0c;相信很多同学都已经抢先使用了起来&#xff0c;甚至都已然经过一系列验证推向了生产环境。面对 TiDB 7.1 若干重要特性&#xff0c;新 GA 的资源管控 (Resource Control) 是必须要充分理解、测试的一个重量级特性。对于常年奋斗在一线…...

Django Web开发入门基础

官方有很详细的文档&#xff0c;但是看过几遍之后如果要翻找还是有点麻烦&#xff0c;本文算作是学习笔记&#xff0c;提取一些关键点记录下来&#xff0c;另附上官方教程 编写你的第一个 Django 应用 注&#xff1a; 文中的指令使用py&#xff0c;是在Windows上&#xff0c;ma…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C#)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;功…...

LetCode算法题---第2天

注:大佬解答来自LetCode官方题解 80.删除有序数组的重复项Ⅱ 1.题目 2.个人解答 var removeDuplicates function (nums) {let res [];for (let index 0; index < nums.length; index) {let num 0;if (res.includes(nums[index])) {for (let i 0; i < res.length; …...

Leetcode.2571 将整数减少到零需要的最少操作数

题目链接 Leetcode.2571 将整数减少到零需要的最少操作数 rating : 1649 题目描述 给你一个正整数 n n n &#xff0c;你可以执行下述操作 任意 次&#xff1a; n n n 加上或减去 2 2 2 的某个 幂 返回使 n n n 等于 0 0 0 需要执行的 最少 操作数。 如果 x 2 i x 2^…...

微前端无界 项目使用记录

1预期目标和场景 一个vue框架开发的应用&#xff0c;需要使用另一个系统的页面。 通俗来说&#xff0c;就是在一个web应用中独立的运行另一个web应用 2 技术支持 微前端处理方案&#xff1a;无界 无界官网&#xff1a; https://wujie-micro.github.io/doc/guide/ CSDN 参考…...

CDH 6.3.2升级Flink到1.17.1版本

CDH&#xff1a;6.3.2 原来的Flink&#xff1a;1.12 要升级的Flink&#xff1a;1.17.1 操作系统&#xff1a;CentOS Linux 7 一、Flink1.17编译 build.sh文件&#xff1a; #!/bin/bash set -x set -e set -vFLINK_URLsed /^FLINK_URL/!d;s/.*// flink-parcel.properties FLI…...

基于谷歌Transeformer构建人工智能问答系统

目录 1 项目背景 2 关键技术 2.1 Transeformer模型 2.2 Milvus向量数据库 3 系统代码实现 3.1 运行环境构建 3.2 数据集介绍 3.3 预训练模型下载 3.4 代码实现 3.4.1 创建向量表和索引 3.4.2 构建向量编码模型 3.4.3 数据向量化与加载 3.4.4 构建检索web 3.5 运行结…...

【2023年11月第四版教材】第15章《风险管理》(合集篇)

第15章《风险管理》&#xff08;合集篇&#xff09; 1 章节说明2 管理基础2.1 风险的属性2.2 风险的分类★★★2.3 风险成本★★★2.4 管理新实践 3 管理过程4 管理ITTO汇总★★★5 过程1-规划风险管理6 过程2-识别风险6.1 识别风险★★★6.2 数据收集★★★6.3 数据分析★★★…...

python常见面试题四

解释 Python 中的魔术方法 (magic methods)。 答&#xff1a;魔术方法是以双下划线 __ 开头和结尾的方法&#xff0c;用于在特定条件下自动调用。例如&#xff0c;__init__ 是用于初始化对象的魔术方法。 解释 Python 中的装饰器 (decorator)。 答&#xff1a;装饰器是一种特殊…...

stm32无人机-飞行力学原理

惯性导航&#xff0c;是一种无源导航&#xff0c;不需要向外部辐射或接收信号源&#xff0c;就能自主进行确定自己在什么地方的一种导航方法。 惯性导航主要由惯性器件计算实现&#xff0c;惯性器件包括陀螺仪和加速度计。一般来说&#xff0c;惯性器件与导航物体固连&#xf…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...