SpringMVC入门及系列教程(四)-SpringMVC在控制器中获取请求中的参数值(详细)

来源:互联网 发布:工程预算软件手机版 编辑:程序博客网 时间:2024/06/08 05:29

一、上一博文我们讲了SpringMVC中的客户端到服务器端的请求映射机制,今天我们将继续研究在SpringMVC的控制器方法中怎样获取请求中的参数值。在SpringMVC中获取请求URL中的参数值的方式总体上来说分为两种方式,一种是通过注解@RequestParam注解方式,另一种是通过定义实体对象方式。

1、通过注解@RequestParam获取(接收)请求URL中的参数,SpringMVC底层会自动拦截请求并将请求中的参数值存于业务处理方法中

注解@RequestParam定义在业务处理方法(控制器方法)的()中,具有value,required,defaultValue几个属性。

①、value属性:其值映射请求中的参数名,将参数名对应的参数值存于自定义的变量中。他的实现原理可以这样理解,结合如下案例:SpringMVC会拦截请求,将请求中的参数userid(value=”userid”)的值存于业务处理方法中定义的参数id变量,具体语法请参照如下案例代码

下面来看具体的案例
这里写图片描述

请求端代码

<a href="springmvc/testSingleParameter?userid=admig">单一参数处理</a>

②、required属性:required属性用于约定请求URL中的参数是否为必须有的。
案例代码:
这里写图片描述

前端代码:

<div>    <a href="springmvc/testSingleParameterRequired?userid=admin">@RequestParam的required属性(有参数userid)</a><br/>    <a href="springmvc/testSingleParameterRequired">@RequestParam的required属性(无参数userid--->String引用类型)</a><br/>    <a href="springmvc/testSingleParameterRequiredInt?age=10">@RequestParam的属性required=false(参数age--->int基本类型)</a><br/>    <a href="springmvc/testSingleParameterRequiredInt">@RequestParam的属性required=false(无参数age--->int基本类型)</a><br/></div>

注意:有时属性使用不当可能会导致错误,比如当设置required属性的值为false而接受请求的的变量定义为基本类型变量时,就会导致错误
这里写图片描述

③、defaultValue属性:
为解决以上问题,SpringMVC的@RequestParam注解提供defaultValue属性,设置参数的默认值,当请求中没有这个参数时,将这个默认值赋给变量
这里写图片描述

④、若请求中含有多个参数时,可以在业务处理方法(控制器方法)的()中定义多个@RequestParam注解
这里写图片描述

对应的前端代码如下:

        <div>            <a href="springmvc/testSingleParameterRequired?userid=admin&password=123456">两个参数处理1</a><br>            <a href="springmvc/testSingleParameterRequired1?userid=admin&password=123456">两个参数处理2</a>        </div>        <div>            若接收请求中的参数为基本类型,同时@RequestParam注解指定了required=false时,为避免将null赋给基本类型变量接收,可以通过defaultValue属性指定默认值<br>            <a href="springmvc/testSingleParameterRequiredIntDefault?age=10">有参数 情况</a>            <a href="springmvc/testSingleParameterRequiredIntDefault">无有参数 情况</a>        </div>

2、通过定义实体类对象接收请求中的参数
在介绍通过实体类接收请求参数前,我们先来看下关于请求URL中的同名参数(类似复选框)的处理过程,比较简单使用String类型一维数组接收即可
这里写图片描述

前端代码
这里写图片描述

通过实体类实现接收参数的功能,查看代码,第二个案例是参数混合处理方式,详见代码
这里写图片描述

前端代码
这里写图片描述

至此,SpringMVC中处理(获取|接收)请求URL中的参数过程阐述完毕,下面给出全部的代码供参考
这里写图片描述

备注:各位朋友如果你觉得本篇博文对你有帮助,请您转发或者关注或者请给出您中肯的评论,如果有问题请及时与我联系!欢迎大家一起讨论一起成长!

阅读全文
1 0
原创粉丝点击