`
shulinshulinzi
  • 浏览: 7695 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

spring mvc 注解@RequestParam

 
阅读更多

在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解 

一、基本使用,获取提交的参数 
后端代码: 

Java代码  收藏代码
  1. @RequestMapping("testRequestParam")    
  2.    public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {    
  3.     System.out.println(inputStr);  
  4.       
  5.     int inputInt = Integer.valueOf(request.getParameter("inputInt"));  
  6.     System.out.println(inputInt);  
  7.       
  8.     // ......省略  
  9.     return "index";  
  10.    }     



前端代码: 

Html代码  收藏代码
  1. <form action="/gadget/testRequestParam" method="post">    
  2.      参数inputStr:<input type="text" name="inputStr">    
  3.      参数intputInt:<input type="text" name="inputInt">    
  4. </form>  



前端界面: 
 

执行结果: 
test1 
123 

可以看到spring会自动根据参数名字封装进入,我们可以直接拿这个参数名来用 

二、各种异常情况处理 
1、可以对传入参数指定参数名 

Java代码  收藏代码
  1. @RequestParam String inputStr  
  2. // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错  
  3. @RequestParam(value="aa") String inputStr  


错误信息: 
HTTP Status 400 - Required String parameter 'aa' is not present 

2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传 

Java代码  收藏代码
  1. // required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
  2. @RequestMapping("testRequestParam")    
  3.     public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)  



3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以 

Java代码  收藏代码
  1. @RequestMapping("testRequestParam")    
  2.    public String filesUpload(@RequestParam(value="aa", required=true) String inputStr,   
  3.         @RequestParam(value="inputInt", required=falseint inputInt  
  4.         ,HttpServletRequest request) {    
  5.       
  6.     // ......省略  
  7.     return "index";  
  8.    }  



解决方法: 
    “Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”

 

 

文章来源:http://825635381.iteye.com/blog/2196911

分享到:
评论

相关推荐

    Spring MVC之@RequestMapping详解

    前段时间项目中用到了REST风格来开发程序,但是当用POST、PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加任何注解),查看了提交方式为application/json, 而且服务器端通过request....

    Spring MVC RequestParam.docx

    对应@RequestParam基本类型的参数我们最好都使用包装类型 还有相识的注解 @RequestHeader。使用方式和@RequestParam一样。

    spring mvc RequestParam与 ModelAttribute异同.docx

    关于spring mvc中的两个注解:@RequestParam、@ModelAttribute区别,原先并没有特别注意,直到最近找别人开发的一个小模块的bug时,才有意识的比较了两者的区别。

    spring mvc 注解

    SpringMVC 采用了松散耦合可插拔组件结构,更具扩展性和灵活性,开发 Web 应用流程也非常简单,越来越多的大公司开始使用 ...11. RequestParam 注解 12. ResponseBody 注解 13. SessionAttribute 注解 14. 其他注解

    spring mvc注释文档

    本文内容包括: ... 通过 @RequestParam 注解指定 • 清单 11. 使模型对象的特定属性具有 Session 范围的作用域 • 请求处理方法的签名规约 • 注册自己的属性编辑器 • 如何准备数据 • 小结 • 参考资料

    spring mvc常用注解_动力节点Java学院整理

    主要介绍了spring mvc常用注解,详细的介绍了@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解,有兴趣的可以了解一下

    spring mvc4中相关注解的详细讲解教程

    主要给大家介绍了关于spring mvc4中相关注解的相关资料,其中详细介绍了关于@Controller、@RequestMapping、@RathVariable、@RequestParam及@RequestBody等等注解的相关内容,需要的朋友可以参考借鉴,下面来一起看...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    SpringMVC【入门】篇

    你的spring入门了! 如果你读完这篇文章,恭喜你!你的Mybatis入门了! 文章目录SSM三部曲:SpringMVC第一篇什么是SpringMVC?概念三层框架SpringMVC运行原理SpringMVC入门补充:请求参数的绑定(非常重要)1. 请求...

    Spring中文帮助文档

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring API

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    SpringMVC Employee Demo

    本次实践内容包括RequestMapping关键字修饰类和方法(请求方式、请求参数&请求头、Ant风格路径)、PathVariable注解、HiddenHttpMethodFilter 过滤器(将Get请求转换成PUT、DELETE请求)、RequestParam 注解、...

    report 开源的访问层中间件,基于java平台

    以及访问控制层的使用,简化控制层的繁琐代码,简化spring mvc的配置,剥离了请求控制层前的一系列操作,极大的提高项目开发速度,降低学习开发的成本。report项目请求通道采用责任链模式设计,扩展性极强,流程完全...

    SpringMVC(一)基础入门看这篇

    文章目录一、SpringMVC的基本概念1.1 关于三层架构和MVC1.2 SpringMVC概述1.2.1 SpringMVC是什么1.2.2 SpringMVC在三层架构的位置1.2.3 SpringMVC的优势1.2.4 SpringMVC 和 Struts2 的优略分析二、SpringMVC入门案例...

Global site tag (gtag.js) - Google Analytics