我正在使用Spring Roo v2.0。我创建了一个具有两个实体的简单应用:图书馆和图书。图书馆可以有更多书籍,所以我一对多创建了一个书架。 我使用以下命令创建了项目:
project setup --topLevelPackage com.library
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
entity jpa --class ~.Library
field string --fieldName identifier --notNull
entity jpa --class ~.Book
field string --fieldName identifier --notNull
focus --class ~.Library
field set --fieldName book --type ~.Book --mappedBy library --notNull false --cardinality ONE_TO_MANY
repository jpa --all --package ~.repository
service --all --apiPackage ~.service.api --implPackage ~.service.impl
web mvc setup
web mvc view setup --type THYMELEAF
web mvc controller --all --responseType JSON
web mvc controller --all --responseType THYMELEAF
web mvc detail --all --responseType THYMELEAF
我的问题.. 当我编辑/显示一个库详细信息时,我想在选择一个库后在列表库列表页面中显示其书。
然后...以这种形式,我想要一个“添加”按钮来为该图书馆创建一本书,而不是一本普通书。
我该怎么办?谢谢建议
答案 0 :(得分:1)
您应该手动自定义与show.html
实体相关的Library
视图,以包含具有该信息的表。
为此,您可以使用model
方法在为show
页提供服务的方法的findBooksByLibrary
中包括完整的书籍清单。像这样:
@Override
@GetMapping(name = "show")
public ResponseEntity<Library> show(@ModelAttribute Library library, Model model) {
model.addAttribute("books", getBookService().findByLibrary(library));
return new ModelAndView("libraries/show");
}
然后,编辑show.html
页面,其中包含显示先前相关书籍的table
元素:
<table data-th-each="item : ${books}">
<tr>
<td data-th-text="${item.identifier}"></td>
</tr>
</table>
注意:请记住,您可以使用Datatables JQuery插件为上面的表提供其他功能。
希望有帮助