22.3.22-会員登録ページ

3887 ワード

会員登録ページ


エディ
名前.
生年月日
パスワード
パスワードの確認

プロジェクトごとにbean Validationを追加


  • @Validatedを使用する場所-@ModelAttributeより前

  • @NotBlank/@NotEmpty/@NotNullの違い(許容範囲の違い)について
    https://velog.io/@invigorating92/beanValidation

  • Validationの失敗によるエラーメッセージ生成プロセスの再学習が必要

  • Validationエラーメッセージを表示するには、コントローラとタイムラインに次のコードが必要です.
  • 컨트롤러
    if (bindingResult.hasErrors()){
                log.info("검증 오류");
                return "members/addForm";
            }
  • に戻り、登録ページに再度アクセスしてエラーメッセージを送信します.
  • の既存のコンテンツは保持されます.(パスワードを除く)
  • 타임리프
    <p th:errors="*{loginId}"></p> 
  • 角th:各フィールドに
  • を記入する必要があります.

    アイデンティティー再検査

  • AJAXは予想以上に複雑
  • Member Controller検証フェーズでは、グローバルエラー
  • を実装できます.

    生年月日

  • まずユーザに数字を入力させるが、
  • 選択ボックスを使用して、年/月/日オプション
  • を作成します.

    パスワードの確認

    @PostMapping("/add")
        public String postAdd(@Validated @ModelAttribute(name = "member") Member member, BindingResult bindingResult){
            String password = member.getPassword();
            String rePassword = member.getRePassword();
            
      if(!password.equals(rePassword)){
                  log.info("비밀번호 일치안함");
                  log.info("password={}, rePassword={}",member.getPassword(), member.getRePassword());
                  bindingResult.reject("notEqual");
                  return "members/addForm";
            }
         }
  • if文でpassword=repasswordのようにコードを記述すると、所望の結果は得られません.
  • password.equalsを使うようにequalsを使うべきです.
  • bindingResult.
  • グローバルエラーの追加を拒否
  • エラーメッセージ出力のために、次の期間文
  • を作成します.
    타임리프
    <div th:if="${#fields.hasGlobalErrors()}">
        <p th:each="err : ${#fields.globalErrors()}" th:text="${err}">글로벌 오류 메시지</p>
    </div>