`
无量
  • 浏览: 1148440 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SpringMVC注解@RequestParam全面解析

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

一、基本使用,获取提交的参数
后端代码:
	@RequestMapping("testRequestParam")  
    public String filesUpload(@RequestParam String inputStr, HttpServletRequest request) {  
		System.out.println(inputStr);
		
		int inputInt = Integer.valueOf(request.getParameter("inputInt"));
		System.out.println(inputInt);
		
		// ......省略
		return "index";
    }   


前端代码:
<form action="/gadget/testRequestParam" method="post">  
	 参数inputStr:<input type="text" name="inputStr">  
	 参数intputInt:<input type="text" name="inputInt">  
</form>


前端界面:


执行结果:
test1
123

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

二、各种异常情况处理
1、可以对传入参数指定参数名
@RequestParam String inputStr
// 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错
@RequestParam(value="aa") String inputStr

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

2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传
// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有
@RequestMapping("testRequestParam")  
    public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, HttpServletRequest request)


3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以
	@RequestMapping("testRequestParam")  
    public String filesUpload(@RequestParam(value="aa", required=true) String inputStr, 
    		@RequestParam(value="inputInt", required=false) int inputInt
    		,HttpServletRequest request) {  
		
		// ......省略
		return "index";
    }


解决方法:
    “Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”
  • 大小: 3 KB
22
6
分享到:
评论
6 楼 phil_jing 2018-03-08  
@RequestParam 默认 true
5 楼 zmengyuu 2016-09-26  
感谢分享!
4 楼 tanzhaoyangbc 2016-07-12  
            
3 楼 powering 2015-09-08  
第三点  笔误了,应该是:、如果用@RequestParam注解的参数是int基本类型,
1 楼 yin_bp 2015-03-30  
感兴趣可以了解一下bboss mvc的RequestParam注解的功能(一个传承于spring mvc的mvc框架):
http://yin-bp.iteye.com/blog/1926341

相关推荐

    SpringMVC注解@RequestParam方法原理解析

    SpringMVC注解@RequestParam方法原理解析 @RequestParam是SpringMVC中一个非常重要的注解,用于接收来自前端的参数值。下面我们将对@RequestParam方法原理解析进行详细的介绍。 一、作用 @RequestParam可以作用在...

    springmvc关于@requestMapping和@requestParam的使用

    1. **基本用法**:将`@RequestParam` 注解应用于方法参数,如`@RequestParam("name") String userName`,表示从请求中获取名为"name"的参数并将其值赋给变量`userName`。 2. **默认值**:可以为`@RequestParam` ...

    对SpringMVC的@RequestParam的解释

    本文将深入解析`@RequestParam`的工作原理及其关键特性。 首先,`@RequestParam` 包含四个主要参数: 1. `String name`:指定请求参数的名称,用于匹配HTTP请求中的查询参数或表单数据。 2. `String value`:与`...

    SpringMvc @RequestParam 使用推荐使用包装类型代替包装类型

    SpringMvc 框架中的 @RequestParam 注解是一种常用的参数注解,用于将 HTTP 请求参数绑定到方法参数上。该注解提供了多种参数类型的支持,包括基本数据类型和包装类型。在使用 @RequestParam 注解时,建议使用包装...

    springmvc:@Controller @RequestMapping @RequestParam,模型和ModelAndView Spring MVC实践

    在Spring MVC框架中,`@Controller`、`@RequestMapping`、`@RequestParam`以及`ModelAndView`是四个关键的注解,它们对于构建基于Java的Web应用程序至关重要。下面将详细介绍这些概念及其在实际开发中的应用。 `@...

    springmvc注解简单实例

    在这个"springmvc注解简单实例"中,我们将深入探讨Spring MVC中的一些关键注解,以及它们在DAO层、Service层和Controller层中的应用。让我们逐一解析这些层面的注解使用。 首先,我们来到**DAO层**。在Spring MVC中...

    Http请求传参SpringMVC接收参数详细解析

    本文将深入解析SpringMVC如何处理GET和POST请求中的参数,以及如何使用@RequestParam和@RequestBody注解。 1. GET请求 GET请求通常用于获取资源,其参数直接附加在URL路径后面,以键值对的形式存在。例如,`/api/...

    springmvc注解详解

    本文档将深入解析 Spring MVC 中的核心注解,帮助开发者更好地理解和使用这些注解进行高效开发。 ### 1. `@Controller` `@Controller` 注解是 Spring MVC 中的关键注解,用于标记一个类作为 MVC 应用中的控制器。...

    SPRINGMVC 注解范例程序

    在"SPRINGMVC 注解范例程序"中,我们可以深入理解 Spring MVC 如何利用注解进行配置简化,提高开发效率。下面将详细介绍 Spring MVC 中的关键注解和其工作原理。 1. **@Controller**:这是 Spring MVC 中的核心注解...

    springMVC 注解版

    在“springMVC 注解版”中,我们将主要关注如何使用注解来简化 Spring MVC 的配置和开发过程。 在传统的 Spring MVC 中,我们需要通过 XML 配置文件来声明控制器、模型、视图等组件,但随着注解的引入,我们可以...

    SpringMVC 注解和非注解demo

    例如,使用注解来定义控制器和处理方法,但通过XML配置来设置全局策略,如拦截器、视图解析器等。 综上所述,Spring MVC的注解和非注解方式各有优势,选择哪种方式取决于项目需求、团队习惯和个人偏好。理解并熟练...

    springmvc学习笔记-springmvc注解开发.zip

    在"springmvc学习笔记--springmvc注解开发.zip"这个压缩包中,我们可以深入探讨Spring MVC的注解驱动开发方式,这是一种简洁且高效的开发模式。 1. **Spring MVC基础**: Spring MVC的核心组件包括...

    注解式springMVC的demo

    在本文中,我们将深入探讨“注解式Spring MVC”的概念及其在实际开发中的应用。Spring MVC是Spring框架的一部分,主要用于构建Web应用程序。它利用注解简化了配置过程,提高了开发效率。 1. **注解基础** 在Spring...

    基于注解的springMVC简单的例子

    **基于注解的SpringMVC简介** SpringMVC是Spring框架的一个模块,主要负责处理Web应用的请求和响应。在传统的SpringMVC配置中,我们需要通过XML文件来配置控制器、视图解析器、模型-视图-控制器(MVC)的各个组件。...

    SpringMVC纯注解配置

    "SpringMVC纯注解配置"是SpringMVC框架的一种高级用法,旨在减少XML配置文件的使用,提高开发效率和代码可读性。在这个主题中,我们将深入探讨如何利用注解实现SpringMVC的配置以及jQuery如何处理后台返回的JSON对象...

    springMVC注解开发代码

    通过这个"springMVC注解开发代码"项目,开发者可以学习到如何使用注解进行 Spring MVC 应用的完整开发,包括控制器、模型绑定、视图解析、异常处理等多个核心概念。同时,结合 `pom.xml` 文件管理和依赖,可以更好地...

    springMVC 注解入门例子

    此外,还需要配置SpringMVC的相关设置,包括处理器映射器、视图解析器以及文件上传的配置。这些配置通常在`WebApplicationContext`的配置文件(如`dispatcher-servlet.xml`)中完成。 最后,为了展示结果,你可能...

    基于注解实现springmvc的范例

    在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。本文将深入探讨如何基于注解实现Spring MVC的范例,旨在为初学者提供一个清晰的入门指南。 一、Spring MVC简介 Spring MVC是Spring框架的一部分...

    BlazeDS+Spring+SpringMVC 注解方式配置文件

    3. `springmvc-config.xml`:SpringMVC的配置文件,定义处理器映射器、视图解析器等。 4. `flex-servlet.xml`:BlazeDS的配置文件,用于配置消息经纪人和服务。 通过以上配置,我们可以创建一个高效的Java Web应用...

Global site tag (gtag.js) - Google Analytics