第二篇:Spring MVC进阶:注解、返回值与参数接收的花式玩法

上一篇咱们搭了个会"打招呼"的Spring MVC项目,是不是感觉有点意思?今天咱们来解锁更多"高级操作"------@RequestMapping注解、Handler的返回值,还有各种参数接收方式,保证让你的项目"活"起来!

一、@RequestMapping:URL和方法的"映射桥梁"

@RequestMapping的作用就是建立URL和方法的映射关系,就像给每个方法贴个"URL标签",请求来了就能找到对应的方法。

1. 用在方法上:最基础的映射

这个咱们上一篇用过啦,比如:

复制代码

2. 用在类上:窄化路径(给URL加个"前缀")

如果类里的方法都有共同的URL前缀,可以把@RequestMapping用在类上,比如:

复制代码

3. 常用属性:value和method

  • value属性:指定URL(如果只写value,可省略属性名)。

  • method属性:指定请求方式(GET/POST/PUT/DELETE等)。

比如:

复制代码

还有更简洁的写法!Spring MVC提供了组合注解:

  • @PostMapping("/findAccount") → 只接受POST请求

  • @GetMapping("/findAccount") → 只接受GET请求

二、Handler的返回值:不止ModelAndView

Handler(也就是Controller里的方法)的返回值有很多种,咱们来看看最常用的3种:

1. 返回ModelAndView:"数据+视图"一把抓

这个咱们上一篇用过,既可以带数据,又能指定跳转页面:

复制代码

2. 返回String:更灵活的选择

返回String有3种玩法:

① 返回视图名(配合Model传数据)

如果只需要传数据、跳页面,可以用这种方式:

复制代码
② 重定向:"换个窗口"访问

重定向的特点是:两次请求,数据会丢失(就像你告诉朋友"去另一个房间找我",原来房间里的东西带不过去)。

复制代码
③ 转发:"内部传话"访问

转发的特点是:一次请求,数据不丢失(就像你在同一个房间里跟朋友说话,东西都在)。

复制代码

三、参数接收:JSP→Controller的"数据传输"

Spring MVC接收参数的方式超灵活,咱们来看看3种最常用的:

1. 基本类型:少量参数直接收

如果参数只有2-3个,直接在方法形参里写对应的类型和参数名就行:

复制代码
复制代码

2. POJO类型:多个参数打包收

如果参数有4-5个甚至更多,直接写形参太麻烦,可以用一个JavaBean(POJO)来接收:

复制代码

先写个Account类(POJO):

复制代码

Controller里直接用Account接收:

复制代码

3. RESTful类型:URL里藏"小秘密"

RESTful风格的参数是直接写在URL里的,看起来更简洁:

复制代码

Controller里用@PathVariable接收:

复制代码

好啦,Spring MVC的进阶玩法就讲到这里!是不是感觉这些功能既实用又有趣?赶紧动手试试,给你的项目加更多"花样"吧~

相关推荐
Moment15 小时前
面试官:给 llm 传递上下文,有哪几个身份 role ❓❓❓
前端·后端·面试
程序猿乐锅16 小时前
【Tilas|第三篇】多表SQL语句
数据库·经验分享·笔记·学习·mysql
qq_5895681016 小时前
java学习笔记,包括idea快捷键
java·ide·intellij-idea
snakeshe101016 小时前
SpringBoot 多人协作平台实战(5):从零开始集成 MyBatis ORM 连接 MySQL 数据库
后端
Cry丶16 小时前
架构师实战:Spring Authorization Server 落地企业级“无感” SSO(附设计映射与源码级接口剖析)
spring·spring security·oauth2.0·authorization·sso·无感登录
SamDeepThinking16 小时前
中小团队需要一个资源微服务
后端·微服务·架构
敖正炀16 小时前
Spring 深度内核-核心容器与扩展机制-Spring 循环依赖终极剖析:三级缓存与 AOP 代理的纠缠
spring
淘矿人16 小时前
从0到1:用Claude启动你的第一个项目
开发语言·人工智能·git·python·github·php·pygame
cany100017 小时前
C++ -- 模板的声明和定义
开发语言·c++
澈20717 小时前
深耕进阶 Day1:C 与 C++ 核心差异 + C++ 入门基石
c语言·开发语言·c++