【发布时间】:2020-04-16 23:13:20
【问题描述】:
我是 Thymeleaf 的初学者,但我想知道如何使用 Thymeleaf 调用 HTML 中的方法。我正在将 Spring Boot 与 Spring MVC 一起使用。
我想创建一个名称为“编辑”的按钮,用户将编辑博客的帖子,但如果我想这样做,我必须知道对象 Postagem 的 ID 是什么。
我当前的代码HTML:(blog.html)
<div th:each="postagem : ${postagens}">
<div class="blog-post">
<h2 class="blog-post-title" th:text="${postagem.titulo}"></h2>
<p class="blog-post-meta">25 de dezembro de 2019 publicado por <a href="#">Vitor</a></p>
<p th:text="${postagem.texto}"></p>
<form action="#" th:action="@{/blog}" th:object="${postagem}" method="post">
<button type="submit" class="btn btn-link" th:field="*{id}">Editar</button>
</form>
</div>
<!-- /.blog-post -->
</div>
我目前在 Java 中的方法:(PostagemController.java)
@PostMapping("/blog")
public String edit(Postagem postagem) {
for(Postagem post : postagens.findAll()) {
if(post.getId() == postagem.getId()) {
ModelAndView modelAndView = new ModelAndView("painel");
modelAndView.addObject("postagemEdit", post);
System.out.println("Id: " + post.getId());
System.out.println("Título: " + post.getTitulo());
System.out.println("Autor: " + post.getAutor());
System.out.println("Texto: " + post.getTexto());
break;
}
}
return "redirect:/painel";
}
我在“painel.html”上的当前代码是我想要设置信息的表单
<form method="post" th:object="${postagemEdit}" th:action="@{/painel}" style="margin: 20px 0">
<div class="form-group">
<input type="text" class="form-control" placeholder="Título" th:field="*{titulo}" /> <br>
<input type="text" class="form-control" placeholder="Spoiler do artigo" th:field="*{spoiler}" /><br>
<input type="text" class="form-control" placeholder="Autor" th:field="*{autor}" /> <br>
<textarea id="mytextarea" th:field="*{texto}"></textarea> <br>
<button type="submit" class="btn btn-primary">Publicar</button>
</div>
</form>
【问题讨论】:
-
您可以在 html 中为帖子 ID 维护一个隐藏字段,例如
input type = hidden。 -
AndrewG,那行不通。我将使用当前代码更新我的主题