- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Spring Boot/相関項目チェックする へ行く。
- 1 (2017-05-23 (火) 15:07:57)
- 2 (2017-05-23 (火) 18:04:53)
キーワード†
- Spring Boot
- 入力チェック
- 相関項目
したいこと†
たとえば、『新しいパスワード』と『新しいパスワード(再入力)』が同じであることをチェックしたい。
どうやって†
@AssertTrueを使うと楽に実装できる。
@Data public class PasswordResetForm { @NotBlank private String currentPassword; @NotBlank private String newPassword; @NotBlank private String newPasswordReenter; @AssertTrue(message="{application.validation.multiField.newPasswordConfirmed.message}") public boolean isNewPasswordConfirmed() { if (newPassword == null || newPassword.isEmpty()) return true; if (newPasswordReenter == null || newPasswordReenter.isEmpty()) return true; return newPassword.equals(newPasswordReenter); } }
Thymeleaf上では次のように書ける。
<p th:if="${#fields.hasErrors('*{newPasswordConfirmed}') th:errors="*{newPasswordConfirmed}"> エラーメッセージ </p>
ノート†
- 入力があるときだけ、などにしたい場合、順番を気にする必要がある
- 相関チェックするValidatorを作成することもできる(そのほうがいいかもね)