如何将 ModelAttribute 从 HTML (Thymeleaf) 发送到控制器

问题描述 投票:0回答:1

我的图书控制器:

@GetMapping("/{id}")
public String showBook(Model model, @PathVariable("id") Integer id, @ModelAttribute("review") Review review){
    if(bookService.findOne(id).isPresent()) {
        model.addAttribute("book", bookService.findOne(id).get());
        System.out.println(SecurityContextHolder.getContext().getAuthentication().getName());
        model.addAttribute("currentUser", SecurityContextHolder.getContext().getAuthentication().getName());
        return "/books/show";
    }
    return "redirect:/books";
}

我想将当前的Book对象发送到CardController并在CardController中获取它。我怎样才能做到这一点?

我做了一个表格,但我不知道如何发送对象

<form th:unless="${#strings.equals(currentUser, 'anonymousUser')}" th:method="POST" th:action="@{/card}">
<button id="add-button" class="fw primary" type="submit">Add book to the card.</button>
</form>
java spring spring-boot spring-mvc thymeleaf
1个回答
-1
投票
<form th:unless="${#strings.equals(currentUser, 'anonymousUser')}" th:method="POST" th:action="@{/card}">
<button id="add-button" class="fw primary" type="submit" th:value="${book.id}">Add book to the card.</button>
</form>



@GetMapping("/card/{id}")
    public String showBook(Model model, @PathVariable("id") Integer id, @ModelAttribute("review") Review review){
        if(bookService.findOne(id).isPresent()) {
            model.addAttribute("book", bookService.findOne(id).get());
            System.out.println(SecurityContextHolder.getContext().getAuthentication().getName());
            model.addAttribute("currentUser", SecurityContextHolder.getContext().getAuthentication().getName());
            return "/books/show";
        }
        return "redirect:/books";
    }
© www.soinside.com 2019 - 2024. All rights reserved.