Я использую Spring mvc для своего веб-приложения.У меня есть простая форма с некоторыми текстовыми полями и списками.
Проблема: Я отправляю форму с нулевыми значениями, и она выполняет проверку.Поскольку здесь есть нулевые значения, проверка снова показывает форму, но с пустыми полями со списком.Когда форма отображается в первый раз, все работает нормально.
Вот код.Как мне заполнить их последними выбранными значениями?
ПРОСМОТР ФАЙЛА
<form:form method="post" modelAttribute="screening">
<table>
<!-- Text Form -->
<tr>
<td>EPI ID</td>
<td><form:input path="epi_Id" /></td>
<td><form:errors path="epi_Id" cssClass="error" /></td>
</tr>
<tr>
<!-- Combo-Box -->
<td>Enrollment Center</td>
<td>
<form:select path="enrollmentCenter">
<form:options items="${epiCentersList}" itemValue="centerID" itemLabel="name"/>
</form:select>
</td>
<td><form:errors path="enrollmentCenter" cssClass="error" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" /></td>
</tr>
</table>
</form:form>
КОНТРОЛЛЕР
@Controller
@RequestMapping("/ScreeningForm")
@SessionAttributes("screening")
public class ScreeningFormController {
@RequestMapping(method=RequestMethod.GET)
public String setupForm(Model model)
{
ScreeningDomain screen=new ScreeningDomain();
model.addAttribute("screening", screen);
model.addAttribute("epiCentersList", usc.getAllEpiCentersList());
return "ScreeningForm";
}
@RequestMapping(method=RequestMethod.POST)
public String submitForm(@ModelAttribute("screening") ScreeningDomain screeningDomain, BindingResult result, SessionStatus status)
{
ScreeningServiceImpl screenService = new ScreeningServiceImpl();
screeningValidator.validate(screeningDomain, result);
if (result.hasErrors())
{
UtilityServiceClass usc=new UtilityServiceClass();
model.addAttribute("epiCentersList", usc.getAllEpiCentersList());
model.addAttribute("screening", screeningDomain);
return "ScreeningForm";
}
else
{
screenService.add(screeningDomain);
return "redirect:ScreeningForm";
}
}
}
Все остальное работает нормально.Я думаю, что модель теряет объект списка значения "epiCentersList" , но я не могу понять, почему.