簡易書籍登録アプリケーション作成(バリデーション版)
7.2 簡易書籍登録アプリケーション作成(バリデーション版)
7.2.1 アプリケーション概要
1 アプリケーション作成の目的
6.5で作成したプロジェクトをもとに、バリデーションの利用方法を学習していきます。
2 簡易書籍登録アプリケーション(バリデーション版)プロジェクト構成(完成状態)
3 プロジェクトフォルダ直下の「pom.xml」に以下の部分を追記する。
7.2.2 エンティティクラスの修正
1 「Book.java」クラスファイルに以下に示すソースコードを追記する。
■ソースコード
【ファイル名:Book.java】
1 | package jp.co.f1.spring.bms.entity; |
3 | import jakarta.persistence.Entity; |
4 | import jakarta.persistence.Table; |
5 | import jakarta.persistence.Id; |
6 | import jakarta.persistence.Column; |
7 | import jakarta.validation.constraints.NotEmpty; |
10 | @Table(name="bookinfo") |
16 | @NotEmpty(message="ISBNを入力してください") |
19 | public String getIsbn() { |
23 | public void setIsbn(String isbn) { |
28 | @Column(length = 100, nullable = true) |
29 | @NotEmpty(message="タイトルを入力してください") |
32 | public String getTitle() { |
36 | public void setTitle(String title) { |
41 | @Column(length = 11, nullable = true) |
42 | @NotEmpty(message="価格を入力してください") |
45 | public String getPrice() { |
49 | public void setPrice(String price) { |
7.2.3 コントローラークラスの修正
1 「BmsController」クラスファイルに以下に示すソースコードを追記する。
■ソースコード
【ファイル名:BmsController.java】
1 | package jp.co.f1.spring.bms.controller; |
3 | import org.springframework.stereotype.Controller; |
4 | import org.springframework.web.bind.annotation.GetMapping; |
5 | import org.springframework.web.bind.annotation.PostMapping; |
6 | import org.springframework.web.bind.annotation.ModelAttribute; |
7 | import org.springframework.web.servlet.ModelAndView; |
8 | import org.springframework.beans.factory.annotation.Autowired; |
9 | import org.springframework.validation.BindingResult; |
10 | import org.springframework.validation.annotation.Validated; |
12 | import jp.co.f1.spring.bms.repository.BookRepository; |
13 | import jp.co.f1.spring.bms.entity.Book; |
16 | public class BmsController { |
18 | // Repositoryインターフェースを自動インスタンス化 |
20 | private BookRepository bookinfo; |
26 | public ModelAndView list(ModelAndView mav) { |
28 | Iterable< Book > book_list = bookinfo.findAll(); |
31 | mav.addObject("book_list", book_list); |
34 | mav.setViewName("list"); |
42 | * 「/insert」へアクセスがあった場合 |
44 | @GetMapping("/insert") |
45 | public ModelAndView insert(@ModelAttribute Book book, ModelAndView mav) { |
48 | mav.addObject("book", book); |
51 | mav.setViewName("insert"); |
58 | * 「/insert」へPOST送信された場合 |
60 | @PostMapping(value = "/insert") |
61 | // POSTデータをBookインスタンスとして受け取る |
62 | public ModelAndView insertPost(@ModelAttribute @Validated Book book, BindingResult result, ModelAndView mav) { |
64 | if (result.hasErrors()) { |
66 | mav.addObject("message", "入力内容に誤りがあります"); |
69 | mav.setViewName("insert"); |
76 | bookinfo.saveAndFlush(book); |
79 | mav = new ModelAndView("redirect:/list"); |
7.2.4 テンプレートファイルの作成
1 「insert.html」ファイルに以下に示すソースコードを記述する。
■ソースコード
【ファイル名:insert.html】
7.2.5 アプリケーションの実行
1 XAMPP(MariaDB)の起動
2 アプリケーションの実行
3 アプリケーションにアクセス(書籍一覧画面)
以下のアドレスから簡易書籍一覧表示アプリケーションにアクセスします。
URL:http://localhost:8080/insert
図 7.2 1:アプリケーションアクセス画面(書籍登録画面で何も入力せず、登録ボタンクリック)
図 7.2 2:アプリケーションアクセス画面(再度書籍登録画面が表示され、エラーメッセージが表示される)
NEXT>> 7.3 簡易書籍登録アプリケーションの説明(バリデーション版)