Spring 将对象从视图发送到控制器

Spring sending object from view to a controller

如何将对象从视图发送到控制器?
我首先使用 Controller 1 在使用 Thymeleaf 的 View 1 上显示此对象,该对象是 ${object}。然后我想做的是单击一个按钮并将该对象发送回控制器 2,以便我可以将同一对象从视图 1 显示到视图 2。你是怎么做到的,你能举个例子吗?

现在我可以使用 URL 中对象的 ID,然后在控制器 2 中请求参数,然后根据 ID 获取对象。但是我不想在URL中看到对象ID,还有什么方法?

如果您不想在 URL 中使用 id,那么您可以创建一个带有隐藏字段的表单并将其提交给您的控制器。

<form th:object="${formData}" method="post">
  <input type="hidden" th:field="*{id}">
  <button type="submit">
</form>

控制器是这样的:

@Controller
public class MyController {

  @GetMapping
  public String showPage(Model model) {
    model.addAttribute("formData", new MyFormData("someId"));

    return "myTemplate";
  }

  @PostMapping
  public String handleId(@ModelAttribute("formData") MyFormData formData) {
    String id = formData.getId();
    
    // do something with id here
  }
}

但你似乎对这个要求有点难。您不想在 URL?

中显示 ID 的任何特定原因