我想从视图中检索对象到控制器。问题是modeList
方法中的wrapper
saveMode
在调试时为空。你能解释一下我做错了吗?
重要提示:在浏览器中,modeList
中的对象存在于表格中。
Mode
是实体表。
前端:
<table class="table table-bordered table-hover table-sm">
<thead class="thead-default">
<tr>
<th th:text="stat"></th>
<th th:text="Mode"></th>
<th th:text="'In use'"></th>
</tr>
</thead>
<tbody>
<form th:action="@{/editMode}" method="post">
<tr th:each="mode, stat : ${wrapper.modeList}">
<td th:text="${stat}"></td>
<td><input type="text" id="actAs" name="actAs" th:value="${mode.actAs}"/></td>
<td><input type="checkbox" name="inUse" th:value="true" th:checked="${mode.inUse}"/></td>
</tr>
<input type="submit" name="btnSaveMode" value="Zapisz" class="btn btn-outline-success"/>
</form>
</tbody>
</table>
后端:
@RequestMapping("/")
public String index(Model model) {
List<Mode> modeList = modeService.findAll();
ModeWrapper wrapper = new ModeWrapper();
wrapper.setModeList(modeList);
model.addAttribute("wrapper", wrapper);
return "index";
}
@RequestMapping(value="/editMode", method = RequestMethod.POST, params = "btnSaveMode")
public ModelAndView saveMode(@ModelAttribute("wrapper") ModeWrapper wrapper, BindingResult errors) {
return new ModelAndView("redirect:/");
}
ModeWrapper
public class ModeWrapper {
private List<Mode> modeList;
public List<Mode> getModeList() {
return modeList;
}
public void setModeList(List<Mode> modeList) {
this.modeList = modeList;
}
}
答案 0 :(得分:0)
不在不同的请求范围内保留模型属性。因此,在modeList
视图呈现后,您将失去index
的价值。如果您要在表单数据中发送,则只能在方法modeList
中获取saveMode
。