プログラミング初心者です。
学習の為、外部キーによる条件検索を実装しています。
ドロップダウンリストに「ジャンル名」を表示させたいのですが、
文字列が何も表示されません。
エラー文も出ずに原因が分からない為、原因が知りたいです。
尚、genreテーブルに値が入っていることは確認済です。
◆controller
@Autowired BookRepository bookrepository; @Autowired GenreRepository genrerepository; @GetMapping(path ="/book/findByGenreName/") public String findGenreName(Model model){ model.addAttribute("genres", genrerepository.findAll()); return "list"; } @RequestMapping(path ="/book/findByGenreName/", method = RequestMethod.POST) public String findByGenreName(@RequestParam("book.genre") int genreId, Model model) { Genre genre = new Genre(); genre.setGenreId(genreId); List<Book> books = bookrepository.findByGenre(genre); model.addAttribute("books", books); return "list"; }
◆html
<form method="post" th:action="@{/book/findByGenreName/}" th:object="${genre}"> ジャンル名(外部キー検索): <select> <option th:each="genre: ${genres}" th:value="${genre.genreId}" th:text="${genre.genreName}"> </option> </select> <button type="submit">検索</button> </form>
◆repository
public interface GenreRepository extends JpaRepository<Genre, Integer> { }
◆entity
@Entity @Table(name = "genre") public class Genre { @Id private Integer genreId; @Column private String genreName; //getter,setter省略 }
ご回答の程、宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー