我有下面的控制器
@RequestMapping("/hello")
public void callHello(MyObject myObject) {
//code
}
这里MyObject是一个带有getter和setter的POJO类
public class MyObj {
private String fName;
private String lName;
//getter and setter
}
我通过ajax调用将此控制器称为
var jqxhr = $.ajax({
url:'hello?fName=testFname&lName=testLname',
type:"GET",
dataType:'JSON'
}});
这工作正常,但我想知道spring的特性是什么,它自动将url参数fname和lName以及myObject的字段映射。
答案 0 :(得分:3)
在幕后,有一个WebDataBinder可以胜任。根据文档,这是:
特殊DataBinder,用于从Web请求参数到JavaBean对象的数据绑定。
用WebBindingInitializer初始化它们。您也可以创建自己的ConfigurableWebBindingInitializer。
根据Spring Boot Reference Guide:
Spring MVC使用WebBindingInitializer为特定请求初始化WebDataBinder。如果你创建自己的ConfigurableWebBindingInitializer @Bean,Spring Boot会自动配置Spring MVC来使用它。