Spring MVC数据绑定和响应——简单数据类型绑定(二)简单数据类型绑定

一、简单数据类型绑定的概念

        简单数据类型的绑定,就是指Java中基本类型(如int、double、String等)的数据绑定。在Spring MVC中进行简单类型的数据绑定,只需客户端请求参数的名称和处理器的形参名称一致即可,请求参数会自动映射并匹配到处理器的形参完成数据绑定。

        下面通过案例演示简单数据类型的数据绑定,该案例要求实现Integer类型和String类型的数据绑定,案例具体实现步骤如下所示。

1、修改UserController.java文件,在UserController类中新增getUserNameAndId( )方法,用来接收客户端请求中的参数。

@RequestMapping("/getUserNameAndId")
public void getUserNameAndId(String username,Integer id) {
	System.out.println("username="+username+",
	id="+id);
}

2、启动chapter12项目,在浏览器中访问地址http://localhost:8080/chapter12/getUserNameAndId?username=Spring&id=1,访问后,控制台打印信息如图所示。 

uername=Spring,id=1

二、参数别名的设置

        需要注意的是,有时候客户端请求中参数名称和处理器的形参名称不一致,这就会导致处理器无法正确绑定并接收到客户端请求中的参数。为此,Spring MVC提供了@RequestParam注解来定义参数的别名,完成请求参数名称和处理器的形参名称不一致时的数据绑定。

三、@RequestParam注解的属性

属性

说明

value

name属性的别名,这里指参数的名称,即入参的请求参数名称,如value="name"表示请求的参数中,名称为name的参数的值将传入。如果当前@RequestParam注解只使用vaule属性,则可以省略value属性名,如@RequestParam("name")

name

指定请求头绑定的名称

required

用于指定参数是否必须,默认是true,表示请求中一定要有相应的参数

defaultValue

形参的默认值,表示如果请求中没有同名参数时的默认值

四、@RequestParam注解的使用

        假设浏览器中的请求地址为http://localhost:8080/chapter12/getUserName?name=Spring,可以在getUserName()方法中使用@RequestParam注解标注参数。

@RequestMapping("/getUserName")
public void getUserName(@RequestParam(value="name",
required = false,defaultValue = “itheima") String username) {
	System.out.println("username="+username);		}

        上述代码中,@RequestParam注解的value属性,给getUserName()方法中的username形参定义了别名name。此时,客户端请求中名称为name的参数,就会绑定到getUserName()方法中的username形参上。@RequestParam注解的required属性设定了请求的name参数不是必须的,如果访问时没有携带name参数,会将defaultValue属性设定的值赋给形参username。

五、@PathVariable注解的两个常用属性

        当请求的映射方式是REST风格时,上述对简单类型数据绑定的方式就不适用了。为此,Spring MVC提供了@PathVariable注解,通过 @PathVariable注解可以将URL中占位符参数绑定到处理器的形参中。@PathVariable注解有以下两个常用属性。

•    value:用于指定URL中占位符名称。

•    required:是否必须提供占位符,默认值为true。

六、@PathVariable注解的使用 

        在UserController.java类中新增一个处理方法getPathVariable( ),在该方法中使用@PathVariable注解进行数据绑定,具体代码如下所示。

@RequestMapping("/user/{name}")
public void getPathVariable(@PathVariable(value = "name") 
String username){
	System.out.println("username="+username);
}

        上述代码中,通过@PathVariable注解的value属性将占位符参数“name”和处理方法的参数username进行绑定。

七、@RequestParam注解value属性可省略的情况

        启动chapter12项目,在浏览器中访问地址http://localhost:8080/chapter12/user/Spring,访问后,控制台打印信息如图所示。

username=Spring

        从运行结果的打印信息可以看出,控制台打印出了username的值为Spring。这表明访问地址后执行了getPathVariable()方法,@PathVariable注解成功将请求URL中的变量user映射到了方法的形参username上。如果请求路径中占位符的参数名称和方法形参名称一致,那么@PathVariable注解的value属性可以省略。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BugPoet

你的鼓励将是我创作的最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值