我正在尝试使用 Spring MVC 3.1 将一堆字段绑定到我的表单中的对象列表中,并使用 Bean Validation 进行验证。
但我不知道如何将多个字段绑定到一个对象和这些对象的列表中。
HTML 表单:
<form method="post" action="#" id="phoneForm">
<table>
<tr>
<td><label for="mobilePhone">Mobile</label></td>
<td>
<input type="text" class="mp_phone" name="mobilePhone" id="mobilePhone" value="" />
</td>
<td><label for="mobilePhone_p">Preferred phone number</label> <input type="radio" name="num_p" id="mobilePhone_p" value="mobilePhone_p" /></td>
</tr>
<tr>
<td><label for="personalPhone">Personal</label></td>
<td>
<input type="text" class="mp_phone" name="personalPhone" id="personalPhone" value="" />
</td>
<td><label for="personalPhone_p">Preferred phone number</label> <input type="radio" name="num_p" id="personalPhone_p" value="personalPhone_p" /></td>
</tr>
<tr>
<td><label for="workPhone">Work</label></td>
<td>
<input type="text" class="mp_phone" name="workPhone" id="workPhone" value="" />
</td>
<td><label for="workPhone_p">Preferred phone number</label> <input type="radio" name="num_p" id="workPhone_p" value="workPhone_p" /></td>
</tr>
</table>
<button type="submit" id="validateFormButton">Submit</button>
</form>
我的表格:
public class PhoneForm {
@NotEmpty
@Valid
private List<Phone> phonesList = new LinkedList<Phone>();
// getter/setter...
}
电话类:
public class Phone {
@PhoneNumber
protected String phoneNumber;
@NotNull
protected Boolean prefferedNumber;
// getter/setter...
}
我想创建:
Phone
withmobilePhone
和mobilePhone_p
form 参数的一个实例。Phone
withpersonalPhone
和personalPhone_p
form 参数的一个实例。Phone
withworkPhone
和workPhone_p
form 参数的一个实例。
每个实例都应添加到PhoneForm
's 列表中。
怎么做 ?
@Valid PhoneForm phoneForm
我做这个表单结构是为了允许在我的 Spring MVC 控制器中只使用一个注释来验证我的 bean:我正在使用列表,因为我想验证用户设置的至少一部电话。