0
我有以下的JSP類下拉數據dissappear提交後,Spring MVC的
<form:form method="POST" modelAttribute="task">
<form:input type="hidden" path="id" id="id"/>
<table>
<tr>
<td><label for="reference">Reference: </label> </td>
<td><form:input path="reference" id="reference"/></td>
<td><form:errors path="reference" cssClass="error"/></td>
</tr>
<tr>
<td><label for="cause">Cause: </label> </td>
<td><form:input path="cause" id="cause"/></td>
<td><form:errors path="cause" cssClass="error"/></td>
</tr>
<tr>
<td><label for="offense">Offense: </label> </td>
<td><form:select path="offense.id" items="${offenses}" required="true" itemLabel="offense" itemValue="id"/> </td>
<td><form:errors path="offense" cssClass="error"/></td>
</tr>
<tr>
<td colspan="3">
<c:choose>
<c:when test="${edit}">
<input type="submit" value="Update"/>
</c:when>
<c:otherwise>
<input type="submit" value="Register"/>
</c:otherwise>
</c:choose>
</td>
</tr>
</table>
</form:form>
和控制器方法是這樣的
@RequestMapping(value = {"/new"}, method = RequestMethod.GET)
public String newTask(ModelMap model) {
Task task = new Task();
List<Offense> offenses = offenseService.findAllOffenses();
model.addAttribute("task", task);
model.addAttribute("edit", false);
model.addAttribute("offenses", offenses);
return "registration";
}
@RequestMapping(value = {"/new"}, method = RequestMethod.POST)
public String saveEmployee(@Valid Task task, BindingResult result,
ModelMap model) {
if (result.hasErrors()) {
return "registration";
}
if (!taskService.isTaskUniqueReference(task.getReference())) {
FieldError referenceError = new FieldError("Task", "reference", messageSource.getMessage("non.unique.reference", new String[]{String.valueOf(task.getReference())}, Locale.getDefault()));
result.addError(referenceError);
return "registration";
}
taskService.saveTask(task);
model.addAttribute("success", "Task " + task.getReference() + " registered successfully");
return "success";
}
的問題是,當我點擊提交和錯誤是觸發,例如重複的參考字段,錯誤將正確顯示在參考字段的左側,但下拉菜單中的選項消失,爲什麼初始模型圖數據丟失?我怎麼能解決這個問題,我試圖在hasErrors()的情況下將模型映射添加到模型映射中,但沒有解決問題。
每次返回「註冊」頁面,請務必添加所有必需的對象模型。這應該解決它。 – Olantobi
有意義 –