私はSpringフレームワークでアプリケーションを書いています。余分なフィールドでフォーム検証を行う方法について質問があります。余分なフィールドでの春のフォーム検証
私は私の知る限りのフォームでフォームを埋めるために理解し、これに新たなんだけど:私は
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String register(Model model) {
model.addAttribute("tenant", new Tenant());
return "register";
}
で属性を設定formタグはその後、バリデータクラスを作成し、POSTリクエストでそれを使用します。
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String registerPost(@ModelAttribute("tenant") Tenant tenant,
Model model,
BindingResult result) {
TenantValidator validator = new TenantValidator();
validator.validate(tenant, result);
if (result.hasErrors()) {
return "register";
}
tenantService.save(tenant);
return "redirect:accountOverview";
}
これは非常にうまく動作し、私はこの便利さに魅了されています!
唯一の問題は余分なフィールドで何をするのでしょうか? たとえば、「リピートパスワード」フィールドがあります。 私はタグを使用せずにして使用することにより、余分なフィールドを作成し、それらを直接検証した場合、私は使用することができません。
<form:errors path="repeatPassword>
タグ「repeatPasswordは、」フォームオブジェクトのメンバではないとして。
頭に浮かぶ最初の解決策は、特別なフォームオブジェクトTenantDTOを作成して余分なフィールドを保持し、保存時にデータを 'Tenant'(エンティティBean)に転送することです。
これは良いアプローチですか?この状況でのベストプラクティスは何ですか?
ありがとうございます!
Leonty
これは私が考えていないものです。 私の懸念は、私のエンティティクラスが(余分なフィールドを持つことによって)フォーム機能を持つということです。これはEJBにあるので、このBeanを使用する別のアプリケーションは、(その特定のアプリケーションに対して)まったく役に立たないフィールドを持つオブジェクトを受け取ります。私が言っていることが意味をなさないことを願っている。一言で言えば、私は心配の分離をできるだけ良いものにしたいと思っています。 – Leonti