Spring MVC @RequestParam(5)
案例来说明

1 @RequestMapping("user/add")
2 public String add(@RequestParam("name") String name,
3 @RequestParam("age") int age){
4 System.out.println(name+","+age);
5 return "hello";
6 }

测试1
当我们请求路径为:http://localhost:8080/springmvc-1/user/add?name=caoyc&age=18
输出结果:caoyc,18
测试2
当我请求路径为:http://localhost:8080/springmvc-1/user/add?age=18
输出结果:有异常出现。意思是说必须要有该参数
解决方案:在@RequestParam标签中添加一个required=false,表示该属性不是必须的
1 @RequestParam(value="name",required=false)
输出结果:null,18
测试3
当我请求路径为:http://localhost:8080/springmvc-1/user/add?name=caoyc
同样出现上面的异常
那么根据上面的方法设置
1 @RequestParam(value="age",required=false) int age
结果再运行。还是抛出异常
这里也说到很明白,大概意思是说不能讲一个null的空值赋给age。应该使用包装类型
那么我们将代码改成这样:
1 @RequestParam(value="age",required=false) Integer age
结果正确输出:caoyc,null
这里还有另外一种改法:给参数指定一个默认值
1 @RequestParam(value="age",required=false,defaultValue="0") int age
结果输出:caoyc,0
【总结】对应@RequestParam基本类型的参数我们最好都使用包装类型
还有相识的注解
@RequestHeader。使用方式和@RequestParam一样。这里就不做多的讲解了。
Spring MVC @RequestParam(5)的更多相关文章
- 2017.3.31 spring mvc教程(八) <mvc:annotation-driven />所做的工作
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(七)多视图控制器
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(六)转发、重定向、ajax请求
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(五)Action的单元测试
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(四)全局的异常处理
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(三)拦截器
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(二)核心流程及配置详解
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- 2017.3.31 spring mvc教程(一)核心类与接口
学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...
- Spring MVC 入门(二)
前言 上一篇讲到了 Spring MVC 的基本请求处理流程,本篇主要说一说如何使用 Spring MVC 来构建一个简单例子. 大致步骤如下 1.新建项目 2.导入相应 jar 包 (Spring ...
随机推荐
- xshell突出显示集
xshell突出显示集(参考mobaxterm,直接拷贝过来不行,应该是xshell对正则表达式的支持不够好): Underline: \b(http(s)?://[A-Za-z0-9_./& ...
- (9)centos7 安装与解压
1.zip/unzip zip 新file 旧file或文件夹 # 把旧文件和文件夹压缩成新文件 -r是文件夹下所有文件 zip -r a.zip ./doc #压缩当前目录 doc下的所有文件变成 ...
- 1022 Digital Library (30 分)
1022 Digital Library (30 分) A Digital Library contains millions of books, stored according to thei ...
- Codeforces 1176B - Merge it!
题目链接:http://codeforces.com/problemset/problem/1176/B 题意:给定序列,任意俩个元素可以相加成一个元素,求序列元素能被3整除的最大数量. 思路: 对于 ...
- 剑指offer——41数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...
- 利用OpenFileDialog 获取图片存储到数据库中
private void button1_Click(object sender, EventArgs e) { string fName; ...
- JUC源码分析-集合篇(九)SynchronousQueue
JUC源码分析-集合篇(九)SynchronousQueue SynchronousQueue 是一个同步阻塞队列,它的每个插入操作都要等待其他线程相应的移除操作,反之亦然.SynchronousQu ...
- python接口自动化(响应对象方法)
python接口自动化(响应对象方法) 一.encoding作用 获取请求的编码(在不设置响应编码时,响应的信息默认使用的是请求的编码格式):r.encoding 设置响应的编码:r.encoding ...
- Use on Git
Preface The document is about to introduce some specialties on PLM development and mainte ...
- ES6 简化对象写法
简化的对象写法 * 省略同名的属性值 * 省略方法的function <!DOCTYPE html> <html lang="en"> <head&g ...