我对MVC和全栈web环境还是个新手。我正在查看一个web应用程序的源代码,并尝试查找js对象和后端java对象之间的映射关系。代码的结构如下所示。BuildingsController中的函数是
@RequestMapping(value = "/AddNewBuilding", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<Object> AddNewBuilding(@RequestBody Building bld, HttpServletRequest request,HttpServletResponse response){其中,建筑定义为
public class Building {
String name;
String city;
String address;
Owner owner;在前端(reactjs),我们填充了变量name、city等,并将它们作为后端发送。
let params = {
name: name,
city: city;
address: address,
owner: owner,
};
axios({
method: "post",
url: "./Buildings/AddNewBuilding",
data: params,
}) 我在源代码中找不到Java对象构建和js对象参数之间的映射。我应该往哪里看,它们在Spring中是如何映射的?
发布于 2021-08-04 15:08:46
这看起来像一个Spring项目,所以它将使用Jackson进行(反)序列化。
这个映射有点“神奇”,因为框架将使用变量名来匹配json字符串中的键。因此,在您的示例中,名称、城市和地址将映射到相应的变量。
现在,Owner是一个对象,因此它将再次将(嵌套的) json映射到变量名。
接下来,如果名称不匹配,您可以注释Java变量。即@JsonProperty
映射有一个全新的世界,但关键是,如果没有配置任何东西,它将默认匹配变量名。
https://stackoverflow.com/questions/68653581
复制相似问题