`

SpringMVC注解@RequestParam全面解析

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

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

@RequestMapping(value = "/item/{configId}", method = RequestMethod.PUT)
    @ResponseBody
    public JsonObjectBase updateItem(@PathVariable long configId, @RequestParam(value = "value") String value) {

        // 业务校验
        configValidator.validateUpdateItem(configId, value);

        LOG.info("start to update config: " + configId);

        //
        // 更新, 并写入数据库
        //
        String emailNotification = "";
        emailNotification = configMgr.updateItemValue(configId, value);

        //
        // 通知ZK
        //
        configMgr.notifyZookeeper(configId);

        return buildSuccess(emailNotification);
    }


前端代码:

// 提交
    $("#submit").on("click", function (e) {
        $("#error").addClass("hide");
        var me = this;
        var value = $("#value").val();
        // 验证
        if (!value) {
            $("#error").removeClass("hide");
            $("#error").html("表单不能为空或填写格式错误!");
            return;
        }
        $.ajax({
            type: "PUT",
            url: "/api/web/config/item/" + configId,
            data: {
                "value": value
            }
        }).done(function (data) {
            $("#error").removeClass("hide");
            if (data.success === "true") {
                $("#error").html(data.result);
            } else {
                Util.input.whiteError($("#error"), data);
            }
        });
    });


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

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


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


2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传
// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
public JsonObjectBase updateItem(@PathVariable long configId, @RequestParam(value = "myValue", required = true) String value)


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

参考:http://825635381.iteye.com/blog/2196911
分享到:
评论

相关推荐

    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