Spring bootにてバリデーション結果が画面に表示されない。Formのクラス名とthymeleaf側のth:objectを一致させなければならない
現象
Spring bootにてバリデーション(例:@Sizeアノテーション等での桁数チェック)を設定しているにも関わらず、画面(thymeleaf)にそのエラー結果が表示されない。
解決
html(thymeleaf)にて、Formインスタンスを設定しているth:objectをFormクラス名と一致させなければならない。
例:Formクラス名=AdminRequestForm
Controller.java
@PostMapping("/approvalRequest")
public String approvalRequest(Model model,
@Validated @ModelAttribute AdminRequestForm requestForm,
BindingResult result,
RedirectAttributes redirectAttributes) {
template.html
悪例
<form id="form" method="POST" th:object="${requestForm}" th:action="@{/approvalRequest}">
改善
<form id="form" method="POST" th:object="${adminRequestForm}" th:action="@{/approvalRequest}">
この記事が気に入ったらサポートをしてみませんか?