У меня есть следующие бобы:Весна привязки и поля формы именования
class User {
private List<Address> addresses;
// ... getter and setter for addresses follows
}
class Address {
private String street, city;
// ... getters and setters follows
}
Это контроллер
@RequestMapping(value = { "/doSomething" })
public String doSomething(@ModelAttribute User user, BindingResult result, Model model) {
// ...
}
А форма может быть что-то вроде
<form>
<input type="text" name="addresses[].street" />
<input type="text" name="addresses[].city" />
...
</form>
Но я получаю следующая погрешность
Request processing failed; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'addresses[]' of bean class [User]: Invalid index in property path 'addresses[]'; nested exception is java.lang.NumberFormatException: For input string: ""
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_31]
at java.lang.Integer.parseInt(Integer.java:592) ~[na:1.8.0_31]
at java.lang.Integer.parseInt(Integer.java:615) ~[na:1.8.0_31]
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:989) ~[spring-beans-4.1.2.RELEASE.jar:4.1.2.RELEASE]
Как я могу назвать поля в форме, чтобы Spring могла выполнить привязку?
попробуйте добавить в контроллер метод: model.addAttribute ("retrievedAddresses", user.addresses); а затем в форме просто выполните: name = "retrievedAddresses [0]" – smoggers
вы используете ngRepeat для прокрутки этих адресов? например '