Я использую Spring MVC 3.1.0 с jsp/jstl. Чтобы отправить объект моему контроллеру, я использую аннотацию ModelAttribute, и все работает нормально. Но когда я пытаюсь передать сложный объект моему контроллеру, его значение равно нулю. Это моя объектная модель:
UorgVO.java
public class UorgVO {
private String nom;
private String nomAbrege;
private UorgVO refUniteOrganisParent;
//getters&Setters..
}
и есть моя страница jsp:
<form:form method="post" action="saveUorg.html" modelAttribute="uorg" >
<table>
<tr>
<th>Nom</th>
<th>Nom abregé</th>
<th>Unité père</th>
</tr>
<tr>
<td><input type="text" path="nom" name="nom"/></td>
<td><input type="text" path="nomAbrege" name="nomAbrege"/></td>
<td>
<select id="refUniteOrganisParent"
name="refUniteOrganisParent"
path="refUniteOrganisParent">
<option value="null"> --- </option>
<c:forEach items="${listeuos}" var="uorgg" varStatus="status" >
<option value="${uorgg}">${uorgg} </option>
</c:forEach>
</select>
</td>
</tr>
</table>
<input type="submit" value="Enregistrer uorg"/>
</form:form>
И мой контроллер:
@RequestMapping(value ="/saveUorg", method = RequestMethod.POST)
public ModelAndView saveUorg(@ModelAttribute("uorg") UorgVO uorg,BindingResult result) {
System.out.println("My foreign attribute is:" +uorg.getRefUniteOrganisParent());
return new ModelAndView("uorg_recherche");
}
И напечатанное значение равно null, но представлены другие атрибуты моего объекта.
Заранее спасибо за помощь
<input type="submit" value="Enregistrer uorg" <BQ>
вы не закрываете входной тег, а тег<BQ>
выглядит так, как будто его там быть не должно. - person robjohncox   schedule 03.07.2013refUniteOrganisParent=value
при отправке? Кроме того, вы не сможете напрямую связать это значение сUorgVO
, потому что передаваемое значение будет строкой. Вам нужно будет зарегистрироватьPropertyEditor
в контроллере, который преобразует переданную строку вUorgVO
. См. этот пример - person Will Keeling   schedule 05.07.2013