Spring Boot 参数类型转换

🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页



我们发现在Controller中定义Post方法需要传递接收一个对象类型的数据,会出现状态码出现400的问题,根本原因在于传递的Key/Value值使用的String类型的数据,我们对象类型中则接收的是其他类型的数据

在这里插入图片描述

在这里插入图片描述

🌟 一、前提

User 类:

public class User {
    private String name;
    private Date birthday;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", birthday=" + birthday +
                '}';
    }
 }

Controller类:

    @PostMapping("/user1")
    public void getUser(User user){
        System.out.println("user = " + user);
    }

🌟 二、参数类型转换

🌟🌟 2.1、自定义类型转换器

@Component
public class UsreConverse implements Converter<String, Date> {
    @Override
    public Date convert(String source) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return format.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

🌟🌟 2.2、采用RequestBody用json传值

    @PostMapping("/user2")
    public void getUser2(@RequestBody User user){
        System.out.println("user = " + user);
    }

🌟 三、总结

  • Post 请求参数可以是Key/Value形式,也可以是Json形式
  • 自定义类型转换器,只对Key/Value形式的参数有效
  • Json形式的参数不需要类型转换器,JSON字符串是通过HttpMessageConverter转换为其他类型的对象

关于HttpMessageConverter可以参考Web三大主流JSON框架



版权声明:本文为m0_46635265原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>