ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

方法参数相关属性params、@PathVariabl和@RequestParam用法与区别

2019-06-07 15:51:38  阅读:247  来源: 互联网

标签:String RequestParam URL 绑定 PathVariabl 参数 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;
    }
  • 1
  • 2
  • 3
  • 4
  • 5

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


【2】@PathVariabl

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

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

实例如下:

  • GET
Request URL:http://localhost:8080/SpringMVC-1/springmvc/testPathVariable/1
  • 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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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


后台code

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

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

【3】@RequestParam

该注解相关属性如下:

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

  • name:和value作用一样;

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

  • 获取URL或者 form data 中的参数

这里写图片描述


前台请求实例如下:

GET

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

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意 :

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";
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

      </div>

标签:String,RequestParam,URL,绑定,PathVariabl,参数,params,占位
来源: https://blog.csdn.net/sinat_18619901/article/details/91127973

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有