【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中的占位符形式不同!!!

原文链接   :  https://blog.csdn.net/j080624/article/details/56280382

@params、@PathVariabl和@RequestParam用法与区别的更多相关文章

  1. [转载]jQuery中wrap、wrapAll和wrapInner用法以及区别

    原文地址:jQuery中wrap.wrapAll和wrapInner用法以及区别作者:伊少君 原文: <ul>   <li title='苹果'>苹果</li>   ...

  2. WordPress翻译中 __()、_e()、_x、_ex 和 _n 的用法及区别

    编译函数 WordPress使用了下面几个函数来方便语言本地化. __() _e() _x() _ex() _n() 以上所列的函数是用来包含所需翻译的字符串的,根据字符串的不同参数和输出类型,需要使 ...

  3. typedef和#define的用法与区别

    typedef和#define的用法与区别 typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程 ...

  4. SQL语句中count(1)count(*)count(字段)用法的区别

    SQL语句中count(1)count(*)count(字段)用法的区别 在SQL语句中count函数是最常用的函数之一,count函数是用来统计表中记录数的一个函数, 一. count(1)和cou ...

  5. Collection List Set和Map用法与区别

    labels:Collection List Set和Map用法与区别 java 散列表 集合 Collection           接 口的接口      对 象的集合   ├   List   ...

  6. jQuery 中 children() 与 find() 用法的区别

    1.children() 与 find() 用法的区别 通过children获取的是该元素的下级元素,而通过find获取的是该元素的下级所有元素.

  7. Linux中yum和apt-get用法及区别

    Linux中yum和apt-get用法及区别   一般来说著名的linux系统基本上分两大类:   1.RedHat系列:Redhat.Centos.Fedora等   2.Debian系列:Debi ...

  8. Java中“|”和“||”用法的区别

    例子: int a = 5; int b = 10; if(a > 4 | b++ > 10) { System.out.println("a:"+a+"\n ...

  9. Html A标签中 href 和 onclick用法、区别、优先级别

    原文:Html A标签中 href 和 onclick用法.区别.优先级别 如果不设置 href属性在IE6下面会不响应hover.双击后会选中标签的父容器而非这个一a标签(IE下都存在这一问题). ...

随机推荐

  1. linux 时间相关的一些总结

    仅作为内核代码中时间管理模块的笔记,3.10内核,很乱,不喜勿喷. 先有time,后有timer. 常用的time结构有哪些?除了大名鼎鼎的jiffies和jiffies64之外,还有常用的一些结构如 ...

  2. 在page cache中的页,如果当时没有进程read或者write,引用计数到底该为多少

    在一次偶然的机会,在研究如何降低pagecache占用的过程中,走查了 invalidate_mapping_pages的代码: 通过调用 __pagevec_lookup 在radix树中收集一部分 ...

  3. Redis进阶实践之二如何在Linux系统上安装安装Redis(转载)(2)

    Redis进阶实践之二如何在Linux系统上安装安装Redis 一.引言 上一篇文章写了“如何安装VMware Pro虚拟机”和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我 ...

  4. t959 unknown device 解决办法

    换机器没用 换数据线没用 最后装了Kies3,好了! -------- 更新 跟数据线也有关系 换一条三星自带的试试

  5. 19.Observales

    然后 ng serve看看能不能启动 OK

  6. 吴裕雄 25-MySQL 临时表

    MySQL 临时表MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间.临时表在MySQL 3.23版本中添加,如果你 ...

  7. border&background1

    1.border-radius border-top-left-radius:10px; = border-top-left-radius:10px 10px; (水平10px 竖直10px 被正圆切 ...

  8. float double 如何存储计算2 (这个写的也不错)

    目前java遵照IEEE制定的浮点数表示法来进行float,double运算.这种结构是一种科学计数法,用符号.指数和尾数来表示,底数定为2——即把一个浮点数表示为尾数乘以2的指数次方再添上符号. 我 ...

  9. quast-lg

    1.官网简介 http://cab.spbu.ru/software/quast-lg/ QUAST- lg是QUAST的一个扩展,用于评估大型基因组装配(直至哺乳动物大小).QUAST- lg从5. ...

  10. pycharm破解版