zoukankan      html  css  js  c++  java
  • Customize Spring @RequestParam Deserialization for Maps and/or Nested Objects

    @RestController
    class MyController {
         @RequestMapping(...)
         public void test(Container container) { ... }
    }
    

    Spring by default uses Dot-Notation to deserialize a nested @RequestParam:

    class Container {
        A a;
    }
    
    class A {
        String val;
    }
    

    works with:

    http://.../myController?a.val=foo
    

    But for Maps it uses Square Bracket notation:

    class Container {
        Map<String, String> a;
    }
    

    works with:

    http://.../myController?a[val]=foo
    

    When using JavaScript there's of course no difference between a HashMap and a Nested Object, so everything will get serialized either with Dots or Square-Brackets.


    Question:

    How / where can I tell Spring (or Spring Boot if that's easier) to use Dot-Notation (or Square Brackets) for both, nested objects and Maps?

    Or is there any reason why Spring makes a difference between those types?

  • 相关阅读:
    LeetCode之移除元素
    有被开心到hh(日常)
    交换排序
    插入排序
    顺序查找&折半查找
    C++之引用
    MySQL学习笔记
    C/C++程序编译过程
    计算机面试知识整合(更新中...)
    MFC之编辑框
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/5696464.html
Copyright © 2011-2022 走看看