博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc的@RequestMapping、@PathVariable、@RequestParam
阅读量:7076 次
发布时间:2019-06-28

本文共 1764 字,大约阅读时间需要 5 分钟。

@RequestMapping("/somepath/{userName}") 

public String register(@PathVariable(value = "userName") String userName) { 

ModelAndView mav = new ModelAndView(); 

return "user/createSuccess"; 




在springmvc注解的@RequestMapping("/somepath/{userName}")如何处理默认值的情况,比如我在发送请求的时候,userName有时候是没有的,所以导到了不能匹配这个action 

http://localhost:8080/spc/movie/somepath/就不能匹配上面的请求: 

http://localhost:8080/spc/movie/somepath/tom而这个才可以匹配。 



@PathVariable 会将url中的参数解析到对应的方法参数上,需要在@RequestMapping()指定匹配模式 
@RequestMapping("somepath/{userName}") 
这时你访问地址"somepath/Tom"就能把"Tom"解析到方法参数userName上 



@RequestParam用于将请求参数区数据映射到功能处理方法的参数上 

public String requestparam2(@RequestParam("username") String username) 

请求中包含username参数(如/requestparam1?username=zhang),则自动传入。 


接下来我们看一下@RequestParam注解主要有哪些参数: 

value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入; 

required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码; 

defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#
{systemProperties['java.vm.version']}”。 


public String requestparam4(@RequestParam(value="username",required=false) String username) 

表示请求中可以没有名字为username的参数,如果没有默认为null,此处需要注意如下几点: 



  
  原子类型:必须有值,否则抛出异常,如果允许空值请使用包装类代替。 
    Boolean包装类型类型:默认Boolean.FALSE,其他引用类型默认为null。 



public String requestparam5(@RequestParam(value="username", required=true, defaultValue="zhang") String username) 

表示如果请求中没有名字为username的参数,默认值为“zhang”。 



如果请求中有多个同名的应该如何接收呢?如给用户授权时,可能授予多个权限,首先看下如下代码: 

public String requestparam7(@RequestParam(value="role") String roleList)如果请求参数类似于url?role=admin&rule=user,则实际roleList参数入参的数据为“admin,user”,即多个数据之间使用“,”分割;我们应该使用如下方式来接收多个请求参数: 

public String requestparam7(@RequestParam(value="role") String[] roleList)  

或 

public String requestparam8(@RequestParam(value="list") List<String> list)  

     本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/1335834,如需转载请自行联系原作者

你可能感兴趣的文章
開始折腾cocos2d-x,使用批处理来创建项目
查看>>
第 30 章 GNU Development Tools
查看>>
Flex Air开发SQLite小结,SQLite开发工具及SQLite与Sql Server的语法差异汇总
查看>>
ABBYY FineReader OCR图片文字识别软件安装应用
查看>>
手把手搭建WAMP+PHP+SVN开发环境
查看>>
操作系统中的进程与线程
查看>>
ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
查看>>
Target runtime Apache Tomcat v6.0 is not defined.
查看>>
WF4.0实战(十四):ASP.NET结合WF4.0完整示例
查看>>
I.MX6 不一定要设置BOOT_MODE进入烧录模式
查看>>
C/C++字符串函数之复制函数
查看>>
ELK5.0安装教程
查看>>
Spring MVC 之拦截器(八)
查看>>
[LeetCode] Remove Duplicates from Sorted List II 移除有序链表中的重复项之二
查看>>
EF架构~mysql数据库无法创建数据模型
查看>>
docker~linux下的部署和基本命令
查看>>
java 数组插入元素
查看>>
Mybatis 中$与#的区别
查看>>
在GridView列表中使用图片显示记录是否包含附件
查看>>
[本周] 随手记下 Asp.net 5种页面转向方法
查看>>