idとnameカラムを持つjpa Entiyテーブルがあります。私はthymeleafビューに名前の値を表示したいと思います。今はビューのEntityオブジェクトを見ることができますが、nameのカラム値は見ることができません。これは私が内容を設定しようとしていますどのようにコントローラからJPAエンティティテーブルのデータをタイムリーフビューに表示
@Entity
@Table(name = "Book")
public class Book extends AbstractPersistable<Long> {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
public Long getID() {
return this.id;
}
public String getContent() {
return this.name;
}
public void setID (Long id) {
this.id = id;
}
public void setContent (String name) {
this.name = name;
}
}
:: `
@Controller
@RequestMapping("/")
public class BookController {
@Autowired
private BookRepository bookRepository;
@RequestMapping("/addBook")
@ResponseBody
public String addBook(@RequestParam("name") String name) {
Book book = new Book();
book.setContent(name);
bookRepository.save(book);
return name;
}
@RequestMapping(value = "book", method = RequestMethod.GET)
public String books(Model model) {
model.addAttribute("books", bookRepository.findAll());
return "book";
}
}
thymeleafビュー・テンプレートを:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <head lang="en"> <meta charset="UTF-8" /> <title>Books</title> </head> <body> <h1>Books Database</h1> <ul th:each="book : ${books}"> <li th:text="${book.name}"></li> </ul>
</body> </html>
addBookページから新しい本を追加して書籍ページにアクセスしてブック名を表示すると、次のエラーが表示されます。例外:SpringEL式の評価: "book.name"。 IDEコンソールで、次のエラーが見つかりました:org.springframework.expression.spel.SpelEvaluationException:EL1008E: 'name'プロパティまたはフィールドが 'sec.book.BookNames'タイプのオブジェクト上に見つかりません。何が間違っていますか?
私はth:text = "$ {book}を使用すると、テーブルの各行に対してEntityオブジェクトのリストが表示されます。これは次のように表示されます:sec.helloworld.BookのエンティティID:ヌル
私はちょうどどのように私はそれを行うことになっていますブック名はオブジェクトのない表示にしたいあなたの時間を事前に感謝名の
ありがとうございます。 idはそれらを変更し、今は完全に動作します。私はリストビューですべての本の名前を取得します。私は答えたように質問をします。 – Gustav