@RequestParam,@PathParam,@PathVariable注解区别(获取前端传来的参数)

获取前端传来的参数

@RequestParam

1、作用:

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

2、语法:

语法:@RequestParam(value=”参数名”,required=true/false,defaultValue=””)
 
value:参数名
 
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
 
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

普通的接收前端传过来的值 参数1要与form表单中的input框的name属性的值一致,包括大小写,参数2可以理解为参数1 的别名

@RequestMapping(value="/logout")
public String logout(@RequestParam(value="参数1",required=false)String 参数2
){  
     ......
}

@PathParam 和 @PathVariable 注解是用于从 request
中接收请求的,两个都可以接收参数,关键点不同的是*@PathParam 是从 request 里面拿取值*,*而 @PathVariable
是从一个url模板里面来填充(绑定 URL
占位符到功能处理方法的参数上,主要实现RESTFULL风格的请求),也就是从地址栏中取值(以键值对形式)。

@PathVariable
它是以“/”方式来获取参数值。
也是RSET风格的springmvc取值。
@PathVariab在没有对应属性时会是一个null值,不会报错.
例子一:

在这里插入图片描述

访问地址:http://localhost:8080/HNZGDXSYS/ImgbyNumber/YG0001
这时候,我们拿到的参数Number为:YG0001,效果图如下:

在这里插入图片描述

例子二:
是spring3.0的一个新功能:接收请求路径中占位符的值
在这里插入图片描述

在这里插入图片描述
例子三:
GET

Request URL:http://localhost:8080/SpringMVC-1/springmvc/testPathVariable/1

POST

<form action="springmvc/testPathVariable/1" method="POST">
	<input type="text" name="username" value=""/>
	<input type="text" name="age" value=""/>
	<input type="text" name="sex" value=""/>
	<input type="submit" value="submit"/>
</form>

【注意】如果URL中无参数,将会出错;如果URL有参数,但是没有使用@PathVariabl该注解,那么URL的参数不会默认与方法参数绑定!方法里的参数会默认绑定表单里面对应的参数!

后台:

如果参数名与占位符一致,则可直接使用@PathVariable;如果不一致,则在@PathVariable( )括号内绑定占位符。

@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id2) {
	System.out.println("testPathVariable: " + id2);
	return SUCCESS;
}

如果是普通的 ?+参数 用@requestparam
如果 result风格 /+/+/ 用@PathVariable
自我认为这个下面的不太常用

@PathParam
它是以键值对方式来获取参数值的。
这个注解相对简单,就是从地址栏取参数值,采用的是传统的拼接参数方法。
如:http://localhost:8080/HNZGDXSYS/ImgbyNumber?name=李四&name1=张三

在这里插入图片描述

它的不同点的是@PathVariab在没有对应属性时会是一个null值,不会报错,而@PathParam则会报404异常

@PathVariable与@PathParam两者之前的优缺点:
@PathVariable
直接获取url模板里的值是很方便的,不用自己去获取 request 里的固定参数,如果只是 ID 这种单个或者多个数字字母,使用 @PathVariable 会好很多。
1.虽然说直接获取 URI 模板里的值是很方便的,但是我们需要拿到一些带有后缀名的参数值的话,它会把参数值的后缀名给忽略掉,我们要是拿到后缀名就还需要写正则来获取到。
2.如果你斜杠后面的参数为空值,那么它会报404错误。
@PathParam
1.如果你需要获取的参数值存在一些符号之类的。
比如:string;str;ing等等
这时,我们可以优先使用@PathParam,我们都知道它是获取request中的值的,这时我们只需要直接获取你需要拿到的那个参数值对应的那个键后,我们就直接拿到值了。
2.就算你参数后面的值为空,那么它也能拿到空值,不会报异常。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值