質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

0回答

1200閲覧

springboot 相関チェック 複数の入力値の一致確認が上手く動作しない。

hiroka1528

総合スコア1

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2020/12/23 14:33

前提・実現したいこと

springbootにおいて、2か所のテキストフォームに入力した値が一致しているかを確認処理を実装しているところですが、想定通りに動作しない状況です。
入力値Aと入力値Bが一致している場合は、正常判定として次画面「userlist」に遷移させたいのですが、
色々調査をしているところですが、詰まっております。
(下記、「■request」内、試験用とコメントがある部分です。)

初歩的な事かもしれませんが、どうぞお知恵をお貸し頂ければ幸いです。

該当のソースコード

■controller package com.example.demo; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * ユーザー情報 Controller */ @Controller public class TestUserTblController { /** * ユーザー情報 Service */ @Autowired TestUserTblService testUserTblService; /** * ユーザー情報一覧画面を表示 * @param model Model * @return ユーザー情報一覧画面のHTML */ @RequestMapping(value = "/userlist", method = RequestMethod.GET) public String displayList(Model model) { List<TestUserTbl> userlist = testUserTblService.searchAll(); model.addAttribute("userlist", userlist); return "userlist"; } /** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * ユーザー新規登録画面を表示 * @param model Model * @return ユーザー情報一覧画面 */ @GetMapping(value = "/useradd") public String displayAdd(Model model) { model.addAttribute("testUserTblRequest", new TestUserTblRequest()); return "useradd"; } /** * ユーザー新規登録 * @param testuserTblRequest リクエストデータ * @param model Model * @return ユーザー情報一覧画面 */ @RequestMapping(value = "/user/create", method = RequestMethod.POST) public String create(@Validated @ModelAttribute TestUserTblRequest testUserTblRequest, BindingResult result, Model model) { if (result.hasErrors()) { return "useradd"; } // ユーザー情報の登録 testUserTblService.create(testUserTblRequest); return "redirect:/userlist"; } } ■request package com.example.demo; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; import lombok.Data; /** * ユーザー情報 リクエストデータ */ @Data public class TestUserTblRequest { /** * 名前 */ @NotEmpty(message = "名前を入力してください") @Size(min = 1, max = 20, message = "名前は20桁以内で入力してください") private String name; /** * 住所 */ @NotEmpty(message = "住所を入力してください") @Size(min = 1 ,max = 255, message = "住所は255桁以内で入力してください") private String address; /* * 試験用:住所欄の一致を確認させる */ private String confirm_address; @AssertTrue(message="住所が一致しません。") public boolean isValid() { if(address == confirm_address) { return true; } return false; } } ■html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ユーザー新規登録</title> </head> <body> <h1>ユーザー新規登録</h1> <form th:action="@{/user/create}" th:object="${testUserTblRequest}" th:method="post"> <a href="/userlist">キャンセル</a> <br> <table> <tr> <label for="userid">名前</label> <input type="text" th:field="*{name}" pattern="^[0-9A-Za-z]+$"> <br> <span th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</span> </tr> <br> <tr> <label for="address">住所1</label> <input type="text" th:field="*{address}" pattern="^[0-9A-Za-z]+$"> <br> <span th:if="${#fields.hasErrors('address')}" th:errors="*{address}">address Error</span> </tr> <br> <tr> <label for="confirm_address">住所2</label> <input type="text" th:field="*{confirm_address}" pattern="^[0-9A-Za-z]+$"> </tr> <br> <span th:if="${#fields.hasErrors('valid')}" th:errors="*{valid}">valid Error</span> </table> <div class="btn_area_center"><input type="submit" value="登録" class="btn"></div> </form> </body> </html> ■service package com.example.demo; import java.util.Date; import java.util.List; import javax.transaction.Transactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service @Transactional(rollbackOn = Exception.class) public class TestUserTblService { /** * ユーザー情報 Repository */ @Autowired TestUserTblRepository testUserTblRepository; /** * ユーザー情報 全検索 * @return 検索結果 */ public List<TestUserTbl> searchAll(){ // ユーザーTBLの内容を全検索 return testUserTblRepository.findAll(); } /** * ユーザー情報 新規登録 * @param user ユーザー情報 */ public void create(TestUserTblRequest testUserTblRequest) { Date now = new Date(); // entity TestUserTbl user = new TestUserTbl(); user.setName(testUserTblRequest.getName()); user.setAddress(testUserTblRequest.getAddress()); user.setPhone("0120-117-117"); user.setCreateDate(now); user.setUpdateDate(now); testUserTblRepository.save(user); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問