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

ecfdbz9o  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(351)

我想展示一个表单,它有一个预先填充的对象列表,每个对象属性作为一个字段,使用thymeleaf模板从我的数据库中检索(然后用户可以编辑)。我知道我会用 th:each 完成对返回列表中每个对象的循环,并创建预填充的表单字段。
但是,如果没有从数据库中检索到任何项,我仍然希望显示与该对象属性相对应的窗体,只显示预填充值为空的窗体。我将如何实现这一点?我在文件中找不到细节。

ecbunoof

ecbunoof1#

我假设您在控制器中执行类似操作:

@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"
}

相关问题