案例来说明

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)的更多相关文章

  1. 2017.3.31 spring mvc教程(八) <mvc:annotation-driven />所做的工作

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  2. 2017.3.31 spring mvc教程(七)多视图控制器

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  3. 2017.3.31 spring mvc教程(六)转发、重定向、ajax请求

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  4. 2017.3.31 spring mvc教程(五)Action的单元测试

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  5. 2017.3.31 spring mvc教程(四)全局的异常处理

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  6. 2017.3.31 spring mvc教程(三)拦截器

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  7. 2017.3.31 spring mvc教程(二)核心流程及配置详解

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  8. 2017.3.31 spring mvc教程(一)核心类与接口

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  9. Spring MVC 入门(二)

    前言 上一篇讲到了 Spring MVC 的基本请求处理流程,本篇主要说一说如何使用 Spring MVC 来构建一个简单例子. 大致步骤如下 1.新建项目 2.导入相应 jar 包 (Spring ...

随机推荐

  1. vue2.0使用基础

    开发情况下需要引入vue.js和vue-resource.js,el:dom生效范围,data,dom静态数据,mounted:初始化调用方法,注意,官方文档需要添加this.$nextTict(fu ...

  2. 12、testng.xml指定运行测试包、测试类、测试方法

    目录如下: TestFixture.java 代码如下: package com.testng.cn; import org.testng.annotations.*; public class Te ...

  3. Linux内核代码布局

    上文参考:http://www.cnblogs.com/long123king/p/3545991.html 先分析一下linker script的语法. #ifdef CONFIG_X86_32#d ...

  4. python中面向对象之装饰器

    python面向对象内置装饰器property,staticmethod,classmethod的使用 @property 装饰器作用及使用 作用:面向对象中的方法伪装成属性 使用如下: class ...

  5. js实现禁止页面拖拽图片

    document.ondragstart = function() {        return false;};

  6. Centos 7 技巧

    查看系统版本详细信息 lsb_release -a 更改邮件MTA alternatives --config mta

  7. autocad 2015 破解方法

    下载 http://trial.autodesk.com/SWDLDNET4/2015/ACD/DLM/AutoCAD_2015_Simplified_Chinese_Win_64bit_dlm.sf ...

  8. nginx新增简单下载站点

    配置nginx server { autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时 ...

  9. git 强制取消本地修改

    本地的项目中修改不做保存操作,可以用到Git pull的强制覆盖,具体代码如下: git fetch --allgit reset --hard origin/master git fetch 指令是 ...

  10. centOs7 java启动jar 并部署到nginx

    简单启动命令 启动命令: nohup java –jar 项目名 & 注意1.加&表示一直后台运行,不加表示临时运行,关闭窗口项目即停止运行2.nohup:即项目在运行前新建一个noh ...