【发布时间】:2015-02-05 16:46:55
【问题描述】:
@RestController
class MyController {
@RequestMapping(...)
public void test(Container container) { ... }
}
Spring 默认使用 Dot-Notation 反序列化嵌套的 @RequestParam:
class Container {
A a;
}
class A {
String val;
}
适用于:
http://.../myController?a.val=foo
但对于地图,它使用方括号表示法:
class Container {
Map<String, String> a;
}
适用于:
http://.../myController?a[val]=foo
在使用 JavaScript 时,HashMap 和嵌套对象当然没有区别,因此所有内容都将使用点或方括号进行序列化。
问题:
我如何/在哪里可以告诉 Spring(或 Spring Boot,如果这更容易的话)对 both、嵌套对象 和 Maps 使用点表示法(或方括号)?
或者有什么理由让 Spring 在这些类型之间产生差异?
【问题讨论】:
标签: spring spring-mvc spring-boot spring-4 http-request-parameters