Java 如何使用SpringMVC从表单中的组合中获取属性值
在Spring中,我们通过名称获取输入的值,但是如果该属性是另一个类的组合,我们如何将该输入链接到该属性?如果是表单,则使用Spring表单标记来构造表单。然后使用Spring的@RequestBody注释将表单属性映射到您的对象Java 如何使用SpringMVC从表单中的组合中获取属性值,java,spring,model-view-controller,Java,Spring,Model View Controller,在Spring中,我们通过名称获取输入的值,但是如果该属性是另一个类的组合,我们如何将该输入链接到该属性?如果是表单,则使用Spring表单标记来构造表单。然后使用Spring的@RequestBody注释将表单属性映射到您的对象 RequestMapping(“/form submit”) Public@RequestBody用户getFormData(){ //spring自动将表单数据映射到您的对象。现在您可以在此处访问用户对象 }在Spring MVC中,您可以使用@ModelAttri
RequestMapping(“/form submit”)
Public@RequestBody用户getFormData(){
//spring自动将表单数据映射到您的对象。现在您可以在此处访问用户对象
}
在Spring MVC中,您可以使用@ModelAttribute
注释在请求处理程序(或与该请求映射的控制器方法)中绑定模型(或您所说的对象)
@PostMapping("/show")
public String submit(@ModelAttribute("user") User user) {
// process your model
return "viewName";
}
这里的@modeldattribute(“user”)
注释提示Spring MVC从可用的请求参数构建一个用户对象,该参数稍后作为用户变量插入
绑定复合模型
绑定复合模型与上面提到的没有什么不同。但是在这种情况下,您的请求参数应该是SpringMVC可以理解的。假设您的用户
类与地址
类有关联
public class User {
private String name;
private Address address;
//getter-setter
}
public class Address {
private String house;
private String street;
//getter-setter
}
您需要将User
绑定为Model属性,然后您的请求参数应该具有如下参数
name: Luiz Felipe
address.house: 10/1
address.street: park avenue
Spring将自动理解该组合关联,并将正确绑定
用户
对象。您所说的另一个类的组合是什么意思??explain more.ex:public class User{String name;Address a=new Address();}public class Address{String street;}*这只是针对类Address的属性,但针对类User的属性?可能我已经了解了。但你需要更多地描述你的问题。请向我们展示一个场景和到目前为止描述您关注的示例代码。请使用这些场景更新您的问题,您在注释@RequestBody
中提供的代码用于反序列化请求参数中传递的对象。这涉及到消息转换器。与请求中放置的Json数据类似。而且你把它放错地方了。所以你的答案是误导。