假设我有一个标准的spring MVC应用程序,我有控制器接受表单变量。这些是编辑简单POJO bean的基本形式。用户,地址,日常用品,没什么特别的。
我想将请求参数映射到我的bean,所以我的控制器方法中没有一堆@RequestParam注释。我做了一些研究,然后找到了HandlerMethodArgumentResolver。看起来它会成功。
但我是否需要为我要映射的每个 bean创建一个HandlerMethodArgumentResolver类?
我有很多,看起来很多工作。我的参数名称与变量名称匹配,所以我可能JSON前端的表单数据,通过ajax调用发送,然后在控制器中封送它。但是有更清洁的方法吗?
答案 0 :(得分:0)
如果您在前端使用字段构建JSON,则可以在控制器中使用@RequestBody
:
@RequestMapping("/something")
public void someMethod(@RequestBody SomeClass data) {
// work with your data
}
SomeClass
将是包含所有字段的常见Java bean:
public class SomeClass {
private int field1;
private String field2;
private double field3;
// getters & setters
}
为此,您需要配置一个序列化和反序列化JSON的HttpMessageConverter
。我认为如果Spring检测到Jackson library在类路径中,则会自动为您执行此操作。