如何解决使用 thymeleaf + jpa 从数据库编辑行
我试图将表中显示的数据作为输入,这样我就可以编辑我想要的任何内容。这就是我在百里香叶中使用 if-s 的原因。因此,当我按下编辑按钮时, id_modific 成为我想要更改的行的 id(我之前从 html->this 作品中获取了它)。 所以现在,没有任何反应,当我按下编辑图像时,没有任何反应。 :( 我该怎么做才能让它发挥作用?或者我怎样才能使用百里香+ jpa 做我想做的事?
先谢谢你。你是最棒的。
控制器的一部分:
@GetMapping("c/edit/{id}")
public ModelAndView editClientData(@PathVariable(value="id") int id,Model model) {
Client client = clientDao.findById(id);
model.addAttribute("id_modific",id);
return new ModelAndView("redirect:/adminhomepage");
}
@GetMapping("/finish-edit-client")
public String FinishEditClient(@RequestParam("id_client") int id_client,@RequestParam("nume") String nume,@RequestParam("prenume") String prenume,@RequestParam("cnp") String cnp,@RequestParam("telefon") String telefon,@RequestParam("email") String email) {
clientService.modifyClientById(id_client,nume,prenume,cnp,telefon,email);
部分HTML代码:
<tr th:each="c,iStat:${client}"
th:style="${iStat.odd}? 'font-weight: bold;'"
th:alt-title="${iStat.even}? 'even' : 'odd'"
th:with="one=1">
<span th:if="${c.id_client} != ${id_modific}">
<td style = "word-wrap: break-word;" th:text="${c.id_client}"></td>
<td style = "word-wrap: break-word;" th:text="${c.nume}"></td>
<td style = "word-wrap: break-word;" th:text="${c.prenume}"></td>
<td style = "word-wrap: break-word;" th:text="${c.cnp}"></td>
<td style = "word-wrap: break-word;" th:text="${c.telefon}"></td>
<td style = "word-wrap: break-word;" th:text="${c.cont_online}"></td>
<td style = "word-wrap: break-word;" th:text="${c.email}"></td>
<td style = "word-wrap: break-word;" th:text="${c.parola}"></td>
<td><a th:href="@{/c/delete/{id}(id=${c.id_client})}" class="btn btn-primary"><i class="fas fa-trash-alt"></i></a>
<a th:href="@{/c/edit/{id}(id=${c.id_client})}" class="btn btn-primary"><i class="fas fa-edit"></i></a> </td>
</span>
<span th:if="${c.id_client} == ${id_modific}">
<form action="finish-edit-client" method="get">
<td name = "id_client" style = "word-wrap: break-word;" th:text="${c.id_client}"></td>
<td><input name="nume" class="form-control"></td>
<td><input name="prenume" class="form-control"></td>
<td><input name="cnp" class="form-control"></td>
<td><input name="telefon" class="form-control"></td>
<td style = "word-wrap: break-word;" th:text="${c.cont_online}"></td>
<td><input name="email" class="form-control"></td>
<td style = "word-wrap: break-word;" th:text="${c.parola}"></td>
<td><button type="submit" class="btn btn-primary"><i class="fas fa-check"></i></button></td>
</form>
</span>
How a row of the table looks like
解决方法
您不能以这种方式将 <span>
放在 <tr>
中 - 这不是有效的 HTML。
如果您使用 Thymeleaf th:if="${...}"
运算符在单元格集之间进行选择,请尝试使用 <th:block>
标签而不是 <span>
。这是一个所谓的 synthetic tag,它将被 Thymeleaf 删除。但是 Thymeleaf 会将内容保留在块内 - 即您选择的 <td>
标签及其数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。