正如我在标题中所说的那样,我丢失了从JSP返回到Controller的对象中的信息。
从我的控制器中,我传递了一个ModelAndView以及一个Historic类的对象。 在JSP页面中,我可以访问该对象的所有值,但是当我提交时,我只获得了部分信息,此过程有些松动。
控制器:
@GetMapping("/tt")
public ModelAndView index(Model model) {
HistoricBO historic = new HistoricBO();
// ... I fulfill this object ...
return new ModelAndView("tt", "historic", historic);
}
在JSP中,我可以访问我传递的所有信息。 我以两种不同的方式使用值。第一个(以后我将无法恢复的信息)是:
<form:form method="POST" action="/addInput" modelAttribute="historic">
....
<form:label path="userHistoric[0].user.name" />
<form:input path="userHistoric[0].user.name" disabled="true" />
成为userHistoric HistoricBO对象中的列表。
使用对象值的另一种方法是到寄存器的daoing循环并显示它们。提交后我可以拥有这些值:
c:forEach items="${historic.userHistoric[0].periods[0].registers}" var="reg" varStatus="rog">
...
<td class="tab-odd">
<form:input path="userHistoric[0].periods[0].registers[${rog.index}].hours[0]" class="monin" type="number" />
</td>
捕获提交的方法如下:
@PostMapping("/addInput")
public String savePeriod(
@ModelAttribute("historic") HistoricBO inputs,
BindingResult result, ModelMap model) {
if (result.hasErrors()) {
return "error";
}
...
在这里,对象 inputs 仅设置了小时数,其余的对象为空。
请问为什么信息丢失以及如何解决? 谢谢
答案 0 :(得分:0)
删除df.vaccine_preg.map(vaccine)
并改为使用disabled="true"
或readonly="true"
,如下所示。
readonly="readonly"
禁用的值将不会通过表单提交。