Spring笔记(04) SpringMVC数据绑定

这一节很有意思,很多东西以前都没深入去了解,红红火火会用就行,这次刚好再学了一遍。

什么是SpringMVC数据绑定

在后台 Controller 方法中,获取前端 HTTP 请求的参数。但是 HTTP 请求传输中,所有参数都是 String 类型。但在方法中,我们获取到的数据已经不仅仅是字符串类型,比如 int 。这期间发生了参数的类型转换。并不是开发人员认为转换的,而是SpringMVC的 HandlerAdapter 组件会在执行 Handler 业务方法之前,完成参数的绑定。

感觉这个转换就是反射+判断

测试

1、服务端需要 int 数据类型参数,如果前端HTTP请求不带任何参数,会报错 500 ,因为基本数据类型int不能赋值null 。但是它对应的包装类 Integer 可以赋值 null。

    @RequestMapping(value = "/start01")
    @ResponseBody
    public String baseType(int type){
        return "type:" + type;
    }

同时因为我后端要求接收 int 类型,如果前端请求传递的是 String 类型,同样会报错,因为 String 类型不能转换为 int 类型。 当然一样,如果我们用 Interger 接收 ,前端传递 String 类型,比如“abc”等类似。一样会报错,String 类型不能转换为 Integer 类型。

RequestParam

这个注解包含好几个常用的属性

@RequestMapping(value="/packageType")
@ResponseBody
public String packageType(@RequestParam(value="id",required=false,defaultValue="1") Integer id){
    return "id:"+id;
}
  • value=”id” ,这里确定形参,HTTP请求参数名要和它保持一致
  • required=false ,非必填写,可省略
  • defaultValue=”1″:若 HTTP 请求中没有 id 参数,默认值为1。

以上代码笔记内容来自付费专栏:案例上手 Spring 全家桶

PS:并没有透露关键内容,纯粹是零碎笔记。如果侵犯版权,请联系我。

本文由老郭种树原创,转载请注明:https://guozh.net/spring-mvc-date-binding/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注