首页 » SEO优化 » phpparam注释技巧_Spring MVC中RequestParam注解的运用指南

phpparam注释技巧_Spring MVC中RequestParam注解的运用指南

duote123 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

概述

学java的同学们大家好,在这个教程中,码农小胖哥将带大家来研究一下Spring的@RequestParam表明。
简而言之,我们可以利用@RequestParam从要求中提取查询参数,表单参数乃至文件。
我们将谈论如何利用@RequestParam及其属性。
我们还将谈论@RequestParam和@PathVariable之间的差异。

大略映射

phpparam注释技巧_Spring MVC中RequestParam注解的运用指南

假设我们有一个端点/ api / foos,它接管一个名为id的查询参数:

phpparam注释技巧_Spring MVC中RequestParam注解的运用指南
(图片来自网络侵删)

在此示例中,我们利用 @RequestParam来提取id查询参数。
一个大略的GET要求将调用getFoos:

接下来,让我们看一下注释的属性:name, value,required和defaultValue。

指定要求参数名称

在前面的示例中,变量名称和参数名称都相同。
但有时我们希望这些不同。
或者,如果我们不该用Spring Boot,我们可能须要进行分外的编译时配置,否则参数名称实际上不会在编译后的字节码中。
为此我们可以通过name属性配置 @RequestParam名称:

@RequestParam(value =“id”)等同于 @RequestParam(“id”)。

可选的要求参数

默认情形下,须要利用@RequestParam注释的方法参数 。
这意味着如果要求中不存在该参数,我们将收到缺点:

我们可以将@RequestParam的required设置为false ,默认为true(必选):

我们测试带参数和不带参数的情形:

这样方法如果未指定参数,则将method参数绑定为null,不会涌现非常。

要求参数的默认值

我们还可以 利用defaultValue属性为@RequestParam设置默认值:

类似required = false, 当不供应参数时注入默认参数:

当我们供应时,注入供应的参数值:

请把稳,当我们设置 defaultValue 属性时, required确实设置为false。

映射所有参数

对付繁芜参数同样可以做到映射,前端传入参数以 k=v 形式进行通报,后端将自动注入。
以下以Map为例:

要求结果为:

映射多值参数

单个@RequestParam可以通报多个值比如数组或者结合:

Spring MVC将映射逗号分隔的 id 参数:

或者单独的id参数列表:

接下来我们将比拟@RequestParam 和 @PathVariable之间的异同。

条件概要

当@RequestParam从查询字符串中提取值时,@ PathVariables从URI路径中提取值:

根据路径进行映射出的结果:

对付@RequestParam,它将是:

跟@ PathVariables相同的相应,只是一个不同的URI:

URI编码

RFC3986文档规定,Url中只许可包含英笔墨母(a-zA-Z)、数字(0-9)、-_.~4个分外字符以及所有保留字符。
US-ASCII字符集中没有对应的可打印字符:Url中只许可利用可打印字符。
US-ASCII码中的10-7F字节全都表示掌握字符,这些字符都不能直接涌如今Url中。
同时,对付80-FF字节(ISO-8859-1),由于已经超出了US-ACII定义的字节范围,因此也不可以放在Url中。

保留字符:Url可以划分成多少个组件,协议、主机、路径等。
有一些字符(:/?#[]@)是用作分隔不同组件的。
例如:冒号用于分隔协议和主机,/用于分隔主机和路径,?用于分隔路径和查询参数,等等。
还有一些字符(!$&’()+,;=)用于在每个组件中起到分隔浸染的,如=用于表示查询参数中的键值对,&符号用于分隔查询多个键值对。
当组件中的普通数据包含这些分外字符时,须要对其进行编码。
RFC3986中指定了以下字符为保留字符:! ’ ( ) ; : @ & = + $ , / ? # [ ]

两种表明的编码问题

我们可以根据上两种表明来分别实行两个示例。

@RequestParam示例结果:

@PathVariable示例结果:

根据上面两种结果,@PathVariable 从路径中获取是不用编码解码的,而@RequestParam会进行编码解码。
这种特性很少有人把稳到,以是我须要特殊指出来

可选值

我们可以利用从Spring 4.3.3开始的必需属性使@PathVariable成为可选:

然后我们对该接口可以同时进行下面的操作:

或者:

对付@RequestParam,我们也可以通过设置required属性进行实现类似的效果。
但是请把稳,在使@PathVariable成为可选时我们该当小心,以避免路径冲突。

我是码农小胖哥,关注我的头条或者公众年夜众号,每天有干货。
有问题可以留言或者私信,以为写的不错可以点个赞,转发一下。

相关文章

php署理源api技巧_国外API代理理解下

API接口日常生活中,许多程序员为重复利用代码会将代码打包成组件模块形式进行调用,调用的办法便是API接口。API代理API代理是...

SEO优化 2024-12-13 阅读0 评论0