Я заполнил список с содержимым моего контроллера Spring (провинция), и у меня есть другой объект (profile2), который мне нужно получить от выбранного значения из (Provincia) ... и другие ценности в моей форме страны, и т.д ...как извлечь выбранное значение из выпадающего списка с помощью загрузки Thymeleaf и Spring
@RequestMapping(value = "/editprofileabout4", method = RequestMethod.GET)
public ModelAndView editProfileAbout4(ModelAndView modelAndView) {
Usuario usuario = getUsuario();
Profile profile = profileService.getUserProfile(usuario);
Profile2 profile2 = profile2Service.getUserProfile2(usuario);
List<Provincia> provincia = provinciaService.readAllProvincia();
Profile webProfile = new Profile();
webProfile.safeCopyFrom(profile);
modelAndView.getModel().put("edituserprofile2th", usuario);
modelAndView.getModel().put("editprofile2about2th", profile2);
modelAndView.getModel().put("editprovincia2th", provincia);
modelAndView.setViewName("editprofileabout4");
return modelAndView;
}
@RequestMapping(value = "/doeditprofileabout4", method = RequestMethod.POST)
public ModelAndView editProfileAbout4(ModelAndView modelAndView, @Valid Profile2 profile2, @Valid Provincia provincia, BindingResult result) {
modelAndView.setViewName("editprofileabout4");
System.out.println(" !!!!!!!!!!!!! PROFILE2a: " + profile2.getBirthdate());
System.out.println(" !!!!!!!!!!!!! PROFILE2b: " + profile2.getGender());
System.out.println(" !!!!!!!!!!!!! PROFILE2d: " + profile2.getProvincia());
System.out.println(" !!!!!!!!!!!!! PROFILE2x: " + provincia.toString());
Usuario usuario = getUsuario();
Profile2 profile = profile2Service.getUserProfile2(usuario);
profile.setCountry(profile2.getCountry());
profile.setGender(profile2.getGender());
profile.setBirthdate(profile2.getBirthdate());
profile.setProvincia(provincia);
if (!result.hasErrors()) {
profile2Service.save(profile);
modelAndView.setViewName("redirect:/editprofileabout4");
}
return modelAndView;
}
в моем HTML, у меня есть:
<form class="sky-form" id="sky-form4" action="#" th:object="${editprofile2about2th}" th:action="@{/doeditprofileabout4}" method="post">
<section>
<div class="col-lg-3">
<select class="form-control" th:object="${editprovincia2th}" id="ddl" name="ddl">
<option value="" th:text="#{editprofile.about4.provincia}">Seleccionar Provincia</option>
<option th:each="dropDownItem : ${editprovincia2th}"
th:value="${dropDownItem.id_provincia}"
th:text="${dropDownItem.provincia}"></option>
</select>
</div>
</section>
, но я не могу найти рабочий пример о том, как извлеките выбранный ключ и значение (th: select), соответствующее значению в списке, и верните его в конец (или переместите его в объект profile2, который имеет проводной объект в провинциях). Я получаю нулевые значения для provincia в моем контроллере после Post.
И когда я включаю (выбираю th: field = "* {provincia}") в HTML, он дает мне сообщение об ошибке ... Появилась непредвиденная ошибка (тип = Внутренняя ошибка сервера, статус = 500) , Ошибка при выполнении процессора 'org.thymeleaf.spring4.processor.attr.SpringSelectFieldAttrProcessor' (editprofileabout4: 120) Недопустимое свойство 'provincia' класса bean [java.util.ArrayList]: свойство bean 'provincia' не читается или имеет недопустимый метод getter: соответствует ли тип возвращаемого значения getter типу параметра сеттера?
Спасибо за вашу помощь. Любая документация оценена.
Спасибо Fuudge. Когда я удаляю объект th: он тоже не работает. – Mike
работает с