@PathVariable和@RequestParm和@Params的区别与总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/J080624/article/details/56280382
【1】params
params: 指定request中必须包含某些参数值是,才让该方法处理。

@RequestMapping(value = "testParamsAndHeaders", params = { "username","age!=10" })
public String testParamsAndHeaders() {
    System.out.println("testParamsAndHeaders");
    return SUCCESS;
}

params 只是判断url 或者 form data 中的参数是否复合params的定义,并不会直接绑定数据到方法的参数中!

【2】@PathVariabl
绑定路径中的占位符参数到方法参数变量中;只能绑定路径中的占位符参数,且路径中必须有参数。

无论是 GET 或者POST 只要 URL中有参数即可!

实例如下:

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的参数不会默认与方法参数绑定!方法里的参数会默认绑定表单里面对应的参数!

后台code

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

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

在这里插入图片描述
【3】@RequestParam
该注解相关属性如下:

value:参数key,可以不写,默认为"";

name:和value作用一样;

required:默认值为true,可以不写;

获取URL或者 form data 中的参数

前台请求实例如下:

GET

<a href="springmvc/testRequestParam?userName=tom&age=11&sex=boy">

POST

<form action="springmvc/testRequestParam" 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>

注意 :

GET中的参数形式为:username=tom&age=11&sex=boy

POST中的参数形式为:以键值对形式保存在form data

后台代码示例:

@RequestMapping(value="/regist",produces="application/json;charset=utf-8")
@ResponseBody
public String regist(SysUser sysUser , @RequestParam(required=true,name="sex") String sex){
	String userName = sysUser.getUserName();
	String age = sysUser.getAge();
	//...
	return "regist success";
}

总得来说,均是键值对形式,与@PathVariabl中的占位符形式不同!!!

作者:流烟默
来源:CSDN
原文:https://blog.csdn.net/j080624/article/details/56280382
版权声明:本文为博主原创文章,转载请附上博文链接!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值