gpt4 book ai didi

spring-boot - 如何使用 Thymeleaf 将参数从 HTML 传递到 Spring Controller?

转载 作者:行者123 更新时间:2023-12-05 03:09:36 24 4
gpt4 key购买 nike

我在 Spring Boot 中有一个 Controller 需要通过 POST 接收参数和对象。该参数不是对象或 if 的一部分。

这是没有参数的 Thymeleaf 形式。它在独立页面中工作正常,但当我在显示文章的页面中使用相同的代码时,它不起作用:

<form th:action="@{/addcomment}" th:object="${comment}" method="post">
<input type="text" th:field="*{commenttext}" />
<button type="submit">send</button>
</form>

因为当我添加

<input type="hidden" th:field="*{id}" th:with="id=1" value="${id}"/>

<input type="hidden" th:field="*{id}"/>

<input type="hidden" th:field="*{id}" value="1"/>

我的 Controller 在控制台中打印 0,而值应该为 1...(即使我将其更改为 value="true"...这来自 Chrome 控制台:

<input type="hidden" class="sr-only" value="0" id="id" name="id" />

不管我用什么

@RequestMapping(value = "/addcomment", method = RequestMethod.POST)
ModelAndView addStatus(ModelAndView modelAndView, @Valid Comment comment, @RequestParam("id") Long id, BindingResult result) {

Comment commentform = new Comment();

Announcement announcement = announcementService.readAnnouncement(id);

String sanatizedcommenttext = htmlPolicy.sanitize(comment.getCommenttext());
commentform.setCommenttext(sanatizedcommenttext);
commentform.setDate(new Date());
commentform.setAnnoucements(announcement);

modelAndView.setViewName("addcomment");

if (!result.hasErrors()) {
commentService.createComment(commentform);

modelAndView.getModel().put("comment2th", new Comment());
modelAndView.setViewName("redirect:/addcomment");
}

return modelAndView;
}

顺便说一句,参数在url中(但我想知道如何独立于它所在的位置将它发送到 Controller )。感谢您的帮助!

最佳答案

您只需添加此更改

<input type="hidden" name="paramName" value="1"/>

在你的 Controller 中

@RequestMapping(value = "/addcomment", method = RequestMethod.POST)
ModelAndView addStatus(ModelAndView modelAndView, @Valid Comment comment, @RequestParam("paramName") Long id, BindingResult result) {

问题是,您在输入字段中使用了 thymeleaf 标签,然后 Spring 认为属性 id 在对象 Comment 中,但这不是您的情况,因此您必须使用普通输入标签。

关于spring-boot - 如何使用 Thymeleaf 将参数从 HTML 传递到 Spring Controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42505168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com