Thymeleaf:如果列表中没有项目,如何使用每个但显示默认值?

Thymeleaf: how to use each but show default if no items are in list?

我想显示一个表单,其中包含一个预填充的对象列表和每个对象属性作为一个字段,使用 Thymeleaf 模板从我的数据库中检索(然后用户将能够编辑)。我知道我会使用 th:each 来完成对返回列表中每个对象的循环并创建预填充的表单字段。

但是,如果没有从数据库中检索到任何项目,我仍想显示与该对象属性对应的表单,只是预填充的值是空的。我将如何实施?我在文档中找不到详细信息。

我假设你正在你的控制器中做这样的事情:

@GetMapping
public String showListOfObjectsForm(Model model) {
  List<MyObject> listOfObjects = service.get...
  model.addAttribute( "myList", listOfObjects );

  return "form"
}

您可以检查 listOfObjects 的大小并在列表中添加一个“虚拟”对象:

@GetMapping
public String showListOfObjectsForm(Model model) {
  List<MyObject> listOfObjects = service.get...
  if( listOfObjects.isEmpty() ) {
    listOfObjects.add( new MyObject() );
  } 

  model.addAttribute( "myList", listOfObjects );
  
  return "form"
}