如何在 Spring 中使用 SimpleFormController 将多个表单输入合并到一个对象中?

发布于 2024-11-07 20:09:14 字数 849 浏览 0 评论 0原文

我有一个名为 Person 的对象,它具有以下属性:

int id;
Name name;
String address;
Date birthday;
String email;
String note;

Name 类具有以下属性:

String firstName;
String middleName;
String lastName;

在我的表单中,我有这些输入字段:

<tr>
    <td>First Name:</td>
    <td><form:input path="firstName" /></td>
</tr>
<tr>
    <td>Middle Name:</td>
    <td><form:input path="middleName" /></td>
</tr>
<tr>
    <td>Last Name:</td>
    <td><form:input path="lastName" /></td>
</tr>

我如何能够检索名称输入字段的值并将其转换为 Name 对象在将其传递给将由 SimpleFormController 创建的 Person 对象之前?我很确定我需要使用 initBinder() 方法,但我不知道如何开始。

我正在使用 Spring 3.0,是的,我知道 SimpleFormController 已经被弃用,但我仍然打算使用它。

I have an object called Person that has the following properties:

int id;
Name name;
String address;
Date birthday;
String email;
String note;

The Name class has these properties:

String firstName;
String middleName;
String lastName;

In my form, I have these input fields:

<tr>
    <td>First Name:</td>
    <td><form:input path="firstName" /></td>
</tr>
<tr>
    <td>Middle Name:</td>
    <td><form:input path="middleName" /></td>
</tr>
<tr>
    <td>Last Name:</td>
    <td><form:input path="lastName" /></td>
</tr>

How will I be able to retrieve the value of the name input fields and turn it into a Name object before passing it to the Person object that will be created by the SimpleFormController? I'm pretty sure I need to use the initBinder() method, but I don't know how to start.

I'm using Spring 3.0, and yes, I know that SimpleFormController is deprecated already, but I still intend to use it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你不是我要的菜∠ 2024-11-14 20:09:14

你需要

<form:input path="name.firstName" />
...

在你的jsp中 写:并且需要重写 formBackingObject 方法,以便它返回一个空的 Person 对象,并引用一个空的名称对象。

protected Object formBackingObject(HttpServletRequest request) {
   Person person = new Person();
   person.Name = new Name();
   return person;
}

就这样,您不需要编写自己的绑定。

You need to write:

<form:input path="name.firstName" />
...

in you jsp. And need to override the formBackingObject Method, so that it retuns an empty Person object with an reference to an emtpy name object

protected Object formBackingObject(HttpServletRequest request) {
   Person person = new Person();
   person.Name = new Name();
   return person;
}

Thats all, you do not need to write your own binding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文