js 对象到 mvc 中的 java 个对象
js objects to java objects in mvc
我是 MVC 的新手,一般来说是全栈网络环境。我正在查看 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) 中填充了变量名称、城市等。并将它们发送到后端。
let params = {
name: name,
city: city;
address: address,
owner: owner,
};
axios({
method: "post",
url: "./Buildings/AddNewBuilding",
data: params,
})
我无法在源代码中的任何地方找到 Java 对象 Building 和 js 对象参数之间的映射。我应该在哪里查看,它们在 Spring 中的映射方式如何?
这看起来像一个 Spring 项目,因此它将使用 Jackson 进行(反)序列化。
映射有点“神奇”,因为框架将使用变量名称来匹配 json 字符串中的键。因此,在您的示例中,名称、城市和地址将映射到相应的变量。
现在,Owner
是一个对象,因此它会再次将(嵌套的)json 映射到变量名称。
接下来,如果名称不匹配,您可以注释 Java 变量。即 @JsonProperty
有一个全新的映射可能性世界,但关键是,如果没有配置,它将默认匹配变量名。
我是 MVC 的新手,一般来说是全栈网络环境。我正在查看 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) 中填充了变量名称、城市等。并将它们发送到后端。
let params = {
name: name,
city: city;
address: address,
owner: owner,
};
axios({
method: "post",
url: "./Buildings/AddNewBuilding",
data: params,
})
我无法在源代码中的任何地方找到 Java 对象 Building 和 js 对象参数之间的映射。我应该在哪里查看,它们在 Spring 中的映射方式如何?
这看起来像一个 Spring 项目,因此它将使用 Jackson 进行(反)序列化。
映射有点“神奇”,因为框架将使用变量名称来匹配 json 字符串中的键。因此,在您的示例中,名称、城市和地址将映射到相应的变量。
现在,Owner
是一个对象,因此它会再次将(嵌套的)json 映射到变量名称。
接下来,如果名称不匹配,您可以注释 Java 变量。即 @JsonProperty
有一个全新的映射可能性世界,但关键是,如果没有配置,它将默认匹配变量名。