SpringMVC映射请求;SpringMVC返回值类型;SpringMVC参数绑定;
一,SpringMVC映射请求
SpringMVC 使用 @RequestMapping 注解为控制器指定可以处理哪些URL请求
1.1@RequestMapping修饰类
注解@RequestMapping修饰类,提供初步的请求映射信息,相对于WEB应用的跟目录。

注:
如果在类名前,使用了注解@RequestMapping,那么在处理器的方法里,在进行页面跳转的时候:
如果不经过视图解析器,那就要在跳转页面名的前面 加上“ / ”,表示页面的跳转位置从项目根目录开始;
如果没加“ /” 的意思是,以上面的例子来说,那么页面的跳转位置是从items这个逻辑文件夹开始!
1.2@RequestMapping修饰方法




详细介绍:@RequestMapping
1.@RequestMapping("/show.do")
===加 / 是当前工程下,不加默认也是当前工程下
2.@RequestMapping(value={"show.do",”reg.do“})
===表示两个url请求都可以进入此控制器的此方法里。
===如果value的值只有一个的话,不需要加{}
===如果@RequestMapping注解里只有value这一个属性的话,并且该value属性还只有一个值的话,value也可以省去。如 上面的1。
3.@RequestMapping(value={"show.do",”reg.do“} ,method={RequestMethod.POST})
===value 和method两个属性之间使用 逗号,隔开
===method={RequestMethod.POST} 表示当前方法只能处理POST请求,若缺省,则get/post都可以处理。
4.对请求的参数加以限制:
@RequestMapping(value={"show.do",”reg.do“} ,params={”参数名1“,”参数名2“})
===表示当前方法请求参数中,必须有参数名叫 参数名1 和 参数名2 这两个参数。
@RequestMapping(value={"show.do",”reg.do“} ,params={”参数名1=value1“,”参数名2“})
===表示当前方法请求参数中,必须有参数名叫 参数名1 和 参数名2 这两个参数,并且参数1的值必须为value1。
5.headers属性:作为了解
指定request中必须包含某些指定的header值,才能让该方法处理请求。
@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=凤凰网")
===表示仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;
二,SpringMVC返回值类型
controller 方法的返回值有三种:
A.ModelAndView
B.String
C.void
2.1返回ModelAndView
方法返回值定义为ModelAndView时,对象可添加model数据也可以指定view。
@RequestMapping("show.do")public ModelAndView show(){ModelAndView mv=new ModelAndView();List<Product> list=new ArrayList<Product>();list.add(new Product(1,"华为","手机",2888.8));list.add(new Product(2,"华为","电脑",4888.8));mv.addObject("list",list);mv.setViewName("show.jsp");return mv;}
补:
mv.addObject("list",list); 相当于request.setAttribute("list",list);在jsp页面中通过items获得集合数据。
2.2返回String
方法返回值为String时,字符串内容不是随意的,而是要遵守一定的格式!有三种方式:
A.字符串内容==>表示逻辑视图名,以请求转发方式进行页面跳转,也可以是controller控制器。
如:return “index.jsp”;
B.字符串内容==>以“forward:”开头,表示以请求转发方式进行页面跳转,也可以是controller控制器。
如:return “forward:index.jsp”;
C.字符串内容==>以“redirect:”开头,表示以重定向方式进行页面跳转,跳转的路径可以是jsp页面,也可以是controller控制器。
如:return “redirect:index.jsp”;
注意: 如果applicationContext.xml里配置了视图解析器,该方法不进入【视图解析器】的。
2.3返回void
方法返回值为void时,有以下两种方式:
A. request.getRequestDispatcher("main.action").forward(request, response);表示请求转发方式进行页面跳转
B. response.sendRedirect("main.action");表示重定向方式进行页面跳转
2.4返回实体对象(配合 @ResponseBody 注解)
当在方法上添加了@ResponseBody注解时,返回的实体对象会被 HttpMessageConverter 转换为对应的响应体格式(如 JSON、XML 等)。
三,SpringMVC参数绑定
参数绑定的过程
从客户端请求key / value数据,经过参数绑定,将key / value数据绑定到controller方法的形参上。
springMVC中,接收页面提交的数据是通过方法形参来接收,而不是在controller类定义成员变量接收

相关文章:
SpringMVC映射请求;SpringMVC返回值类型;SpringMVC参数绑定;
一,SpringMVC映射请求 SpringMVC 使用 RequestMapping 注解为控制器指定可以处理哪些URL请求 1.1RequestMapping修饰类 注解RequestMapping修饰类,提供初步的请求映射信息,相对于WEB应用的跟目录。 注: 如果在类名前࿰…...
【第28章】Spring Cloud之Sentinel注解支持
文章目录 前言一、注解埋点支持二、SentinelResource 注解三、实战1. 准备2. 纯资源定义3. 添加资源配置 四、熔断(fallback)1. 业务代码1.1 Controller1.2 Service1.3 ServiceImpl 2. 熔断配置3. 熔断测试 总结 前言 上一章我们已经完成了对Sentinel的适配工作,这…...
鼎捷新一代PLM 荣膺维科杯 “2023年度行业优秀产品奖”
近日,由中国高科技行业门户OFweek维科网主办的“全数会2024(第五届)中国智能制造数字化转型大会暨维科杯工业自动化及数字化行业年度评选颁奖典礼”在深圳隆重举办。这不仅是中国工业自动化及数字化行业的一大品牌盛会,亦是高科技…...
如何升级用 Helm 安装的极狐GitLab Runner?
本分分享如何对 Helm 安装的 Runner 进行升级。整个过程分为三步:1、确定 Runner 最新版本或者想要升级的版本是否存在;2、用 Helm upgrade 命令进行升级;3、升级确认。 极狐GitLab 为 GitLab 的中国发行版,中文版本对中国用户更…...
08 vue3之认识bem架构及less sass 和scoped
bem架构 他是一种css架构 oocss 实现的一种 (面向对象css) ,BEM实际上是block、element、modifier的缩写,分别为块层、元素层、修饰符层,element UI 也使用的是这种架构 1. BEM架构 1. 介绍 1. BEM是Block Element M…...
静态库的制作
静态库是一组对象文件的集合,它们在编译时被链接到可执行文件中。这意味着,静态库中的代码会被复制到每个使用它的程序中,因此静态库不需要在程序运行时被单独加载。制作静态库可以帮助你将常用的代码模块化、重用,简化开发过程。…...
PHP在现代Web开发中的高效应用与最佳实践
PHP在现代Web开发中的高效应用与最佳实践 在快速迭代的Web开发领域,PHP作为一门历史悠久且广泛应用的服务器端脚本语言,始终保持着其独特的魅力和强大的生命力。从简单的动态网页到复杂的企业级应用,PHP凭借其易学性、丰富的库支持和广泛的社…...
大数据-134 - ClickHouse 集群三节点 安装配置启动
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
2024网络安全人才实战能力白皮书安全测试评估篇
9月10日,国内首个聚焦“安全测试评估”的白皮书——《网络安全人才实战能力白皮书-安全测试评估篇》(以下简称“白皮书”)在国家网络安全宣传周正式发布。 作为《网络安全人才实战能力白皮书》的第三篇章,本次白皮书聚焦“安全测…...
[项目][WebServer][解析错误处理]详细讲解
可为每种情况都确实对应一个状态码,当发生错误时,跳转到对应的html页面即可但是为了代码的复用性,可以将所有的错误情况都归置处理 #define SEP ": " #define LINE_END "\r\n" #define WEB_ROOT "wwwroot" #…...
51单片机应用开发---数码管的控制应用
实现目标 1、掌握数码管结构、驱动原理; 2、 一、什么是数码管? 1.数码管定义 数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数码管和八段数码管(多一个小数点DP)。数码管在我们生活中无处不在,比如…...
Vue3+Django5+REST Framework开发电脑管理系统
前端:Vue3TypeScript 后端:Django5REST Framework 功能介绍 用户管理角色管理菜单管理配件管理仓库管理类型管理电脑管理入库管理出库管理库存管理收发明细管理 界面预览 源码地址:managesystem: 电脑管理系统...
Java8函数式接口全攻略
一、接口大白话 1.四大基础接口 Consumer<T> 核心方法:void accept(T t);消费者。接受一个输入参数,不返回任何结果的操作。望文生义:你给我啥,我就执行啥,没有结果。 Supplier<T> 核心方法: T get();供…...
英文软件汉化中文软件教程asi exe dll 等汉化教程
相信大家在使用国际软件的时候,会经常碰到英文类型的软件 或者玩一些游戏使用一些工具,也基本都是外网的,那么对于用户来讲 就会非常的不方便! 小编为大家整理了一些国内大佬出的的英文软件汉化中文软件的视频教程 教程分为EX…...
HTTP 请求方式`application/x-www-form-urlencoded` 与 `application/json` 怎么用?有什么区别?
HTTP 请求方式总结:application/x-www-form-urlencoded 与 application/json 在前后端交互中,客户端发送数据到服务器的常见方式有两种:application/x-www-form-urlencoded 和 application/json。本文将详细介绍这两种请求方式的特点、使用方…...
prometheus 集成 grafana 保姆级别安装部署
前言 本文 grafana 展示效果只需要 prometheus node_exporter grafana 其他的选择安装 环境和版本号 系统: CentOS 7.9 prometheus: 2.54.1 pushgateway: 1.9.0 node_exporter: 1.8.2 alertmanager: 0.27.0 grafana:11.2.0 官网:https://prometheus.io/ 下载地址:h…...
Apache SeaTunnel Committer 进阶指南
Apache SeaTunnel 作为一个开源的数据集成工具,旨在简化和加速海量数据的采集和传输。 社区的 Committer 是指拥有项目存储库的写权限的社区成员,即 Committer 可以自行修改代码、文档和网站,也可以合并其他成员的贡献。成为 Apache SeaTunn…...
组件上的v-model(数据传递),props验证,自定义事件,计算属性
一.props验证 在封装组件时对外界传递过来的props数据进行合法性校验,从而防止数据不合法问题。 1.基础类型检查 String,Number,Boolean,Array,Object,Date,Function,Symbol 2.多个可能的类型 3.必须项校验 4.属性默认值 5.自定义验证函数 <template>&…...
mfc140u.dll文件错误的相关修复方法,4种方法修复mfc140u.dll
当面对基于Microsoft Visual C开发的应用程序出现启动或运行失败时,mfc140u.dll文件错误往往是罪魁祸首之一。这个动态链接库(DLL)文件对于许多Windows软件来说是必不可少的,因为它包含了重要的编程代码和数据。如果发现此文件损坏…...
Redis中使用布隆过滤器解决缓存穿透问题
一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据…...
锂离子动力电池机理建模与系统状态评估【附代码】
✨ 长期致力于新能源汽车、动力电池系统、状态监测与评估、Matlab/Simulink研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)全阶电化学-热耦合模型的有…...
从零打造会发光的航天飞机模型:焊接入门与PCB组装实战
1. 项目概述:从零打造一台会发光的航天飞机模型如果你对电子制作感兴趣,或者一直想亲手焊接点什么,但又觉得从零开始画电路板、写代码门槛太高,那么这个Space Shuttle Discovery焊接套件绝对是为你量身定做的“入门神作”。它巧妙…...
BLE扫描器开发实战:从原始字节解析到IN100设备高效调试
1. 项目概述:从芯片到应用,一个BLE扫描器的诞生去年五月,我们团队独立开发的NanoBeacon™ BLE扫描器移动应用在应用宝正式上架了。这件事本身可能不算惊天动地,但对我们这些从底层芯片一路摸爬滚打上来的工程师来说,意…...
编程分析企业奖罚制度执行数据,优化奖罚标准,做到赏罚分明,调动全体员工职场工作积极性。
定位是:商务智能(BI) Python 人力资源数据分析,可直接用于课程设计、技术博客或企业内部管理优化原型。⚠️ 说明:本方案不评价企业文化优劣、不站队劳资任何一方,仅提供数据建模与分析框架。一、实际应用…...
AI Agent创业融资指南:投资人最看好的Agent项目特征与商业模式
AI Agent创业融资指南:投资人最看好的Agent项目特征与商业模式 各位技术创业者、产品经理、投资人朋友,晚上好!我是深耕AI大模型落地与Agent赛道创业3年多、前后帮2个种子轮项目拿到近5000万天使/A轮融资、现在自己正在做垂直医疗场景诊断Age…...
Linux驱动开发实战:手把手教你为GT1151触摸屏编写I2C+Input+中断驱动(基于F1C200S)
Linux驱动开发实战:GT1151触摸屏I2CInput中断驱动全解析 1. 嵌入式Linux驱动开发概述 在嵌入式系统开发中,触摸屏作为人机交互的核心组件,其驱动开发一直是工程师必须掌握的技能。GT1151作为一款广泛应用于嵌入式设备的电容式触摸屏控制器&am…...
CircuitPython微控制器图形保存实战:从屏幕截图到BMP文件生成
1. 项目概述:为什么我们需要在微控制器上保存图形? 在嵌入式开发领域,尤其是当我们使用像Adafruit PyPortal、PyGamer这类带有彩色显示屏的开发板时,图形界面的调试和内容存档一直是个不大不小的痛点。想象一下,你花了…...
终极指南:BG3 Mod Manager让你的《博德之门3》模组管理变得简单高效
终极指南:BG3 Mod Manager让你的《博德之门3》模组管理变得简单高效 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 你是否曾经因为《博…...
基于ESP32与NeoPixel的智能灯光控制系统:从硬件选型到Web控制全解析
1. 项目概述:打造你的专属智能光效中心几年前,我为了给家里的节日装饰增添点科技感,琢磨着怎么让一串普通的LED灯带变得“听话”——能从手机或电脑上随意切换颜色和动画。当时市面上成品的智能灯带要么价格不菲,要么功能受限&…...
告别全屏地球!用Cesium.js在地图上只显示一个县(附完整代码)
用Cesium.js实现区域聚焦:打造专属行政区划三维地图 在WebGIS开发中,我们经常遇到需要将三维地球的显示范围限定在特定行政区划内的需求。无论是为了突出展示某个城市的发展规划,还是为了制作县域级别的专题地图,区域聚焦技术都能…...
