これは役に立ちます。ソースは:Mastering Spring MVC
有効にするにはもう少し追加する必要があります。まず、コントローラはフォーム提出時に有効なモデルを望んでいると言う必要があります。フォームにエラーがある場合は、ユーザーをリダイレクトしていない
@RequestMapping(value = "/profile", method = RequestMethod.POST)
public String saveProfile(@Valid ProfileForm profileForm,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "profile/profilePage";
}
System.out.println("save ok" + profileForm);
return "redirect:/profile";
}
注:フォームを表すパラメータに
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
として注釈WELとして
javax.validation.Valid
を追加するだけのことを行います。これにより、同じWebページに表示することができます。それについて言えば、それらのエラーが表示される場所をWebページに追加する必要があります。
profilePage.html
にこれらの行を追加します。
<form th:action="@{/profile}" th:object="${profileForm}"
....">
<div class="row">
<div class="input-field col s6">
<input th:field="${profileForm.twitterHandle}"
id="twitterHandle" type="text" th:errorclass="invalid"/>
<label for="twitterHandle">Twitter handle</label>
<div th:errors="*{twitterHandle}" class="redtext">
Error</div>
</div>
<div class="input-field col s6">
<input th:field="${profileForm.email}" id="email"
type="text" th:errorclass="invalid"/>
<label for="email">Email</label>
<div th:errors="*{email}" class="red-text">Error</div>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<input th:field="${profileForm.birthDate}"
id="birthDate" type="text" th:errorclass="invalid" th:placeholder="${
dateFormat}"/>
<label for="birthDate">Birth Date</label>
<div th:errors="*{birthDate}" class="red-text">Error</
div>
</div>
</div>
<div class="row s12">
<button class="btn indigo waves-effect waves-light"
type="submit" name="save">Submit
<i class="mdi-content-send right"></i>
</button>
</div>
</form>
はい確かに、春ブーツは、私たちのメッセージソースBeanを作成するの面倒を見ます。
Size.profileForm.twitterHandle=Please type in your twitter user name
Email.profileForm.email=Please specify a valid email address
NotEmpty.profileForm.email=Please specify your email address
PastLocalDate.profileForm.birthDate=Please specify a real birth date
NotNull.profileForm.birthDate=Please specify your birth date
typeMismatch.birthDate = Invalid birth date format
:このメッセージソースの デフォルトの場所は、このようなバンドルを作成し、次のテキストを追加し
src/main/resources/messages.
properties.
です。
ありがとうございます!あなたは純粋な休止状態のために言及した "バンドル"をどのように作成できますか?これは実際に私を最も混乱させた部分です。 –
申し訳ありませんが、これは純粋な休止状態ではありません。これらのアノテーションは、Beanの検証を指定するJSR-303仕様に基づいています。この仕様の最も一般的な実装は、Springブートに含まれているhibernate-validatorです。純粋な休止状態の場合は、文書を検索する必要があります –
申し訳ありませんが、私はあなたの質問を誤解していました。私はあなたが春の実施を頼んだと思った。 –