Sar*_*ram 4 java model-view-controller spring spring-mvc
我在这里阅读了 Spring Data Binder 的全面解释:/sf/answers/259409881/
我的问题需要更多的知识,让我强调一下:
我有具有复杂字段的 Person 对象 - 例如与街道和数字字段的联系。所以我们可以这样描述:
public class Contact {
private String street;
private int number;
// setters & getters
};
public class Person {
private String name;
private int age;
private Contact contact;
// setters & getters
};
Run Code Online (Sandbox Code Playgroud)
我认识到 spring 将其表示为 html 表单,如下输入字段:
姓名、年龄、contact.street、contact.number
我认为,当它返回时,它可以将它放回 Person 对象。
我想“雇用”Spring Binder 来为我提供的文本数据创建对象(不是 HttpRequest 对象)。例如我有文件:
name age street number
John 22 MHDrive 2187
Will 32 MHDrive 3212
Run Code Online (Sandbox Code Playgroud)
我可以提供上面的任何结构并想要获取 Person 对象:)
例如
Person p = springBinderSomething({{"name","John"},{"age","22"},{"street","MHDrive"},{"number","2187"}}, Person.class);
Run Code Online (Sandbox Code Playgroud)
任何帮助表示感谢
Thx
Saram
在这种情况下,听起来您想直接使用DataBinder类。您应该能够实例化 DataBinder 实例,传递要绑定的对象的实例,然后调用bind(PropertyValues)方法来执行绑定。Spring MVC 通常会为您实例化类的新实例,但如果您直接调用 DataBinder,则需要向其传递一个实例化的实例。 ServletRequestDataBinder在幕后创建MutablePropertyValues的实例,用请求中的参数值填充该实例,然后传递到#bind(PropertyValues)方法中。在您的情况下,您可能希望自己创建一个新实例并直接使用您的数据而不是从请求填充它。如果现有对象中有可用的数据,则有许多 MutablePropertyValues 的构造函数,否则您只需#add(String, Object)使用名称和值调用该方法即可。
Person person = new Person();
DataBinder dataBinder = new DataBinder(person);
MutablePropertyValues mpv = new MutablePropertyValues();
mpv.add("name", "John Doe");
mpv.add("age", 25);
mpv.add("contact.street", "1st Street");
mpv.add("contact.number", 12345);
dataBinder.bind(mpv);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3234 次 |
| 最近记录: |