2

私は、JSF2.0、richfaces 4、MVC ベースの Web サイトでかなり困っています。ユーザーが自分の住所を入力することになっているWebページがあります。

ただし、1 つまたは 3 つのアドレスのみを入力することを選択できます。最初は 1 つのアドレスのみが表示されますが、いくつかのチェックボックスをオンにすることで、さらにアドレスを追加することを選択できます。

ページ

コード

しかし、JSR303 バリデーターを使用すると、生成されていないアドレスに対しても検証制約がチェックされます。

これらのバリデーターに条件を追加する方法はありますか? のように、@NotEmpty(if="chekboxe1")

ありがとう。

4

1 に答える 1

2

これは既知の問題であり、簡単な解決策はありません(キーワードのグーグル:マルチフィールドJSR 303カスタム検証アノテーション)。

JSR 303の使用法は非常に魅力的ですが、データ側での気象マルチプロパティ検証は理にかなっていると主張することもできます。入力(提出済み)からではなく、データから検証プロセスにアプローチしているため、マルチプロパティと言っています。したがって、特定のマルチ検証が一方のユーザーには意味があり(レコードの作成)、もう一方のユーザーには意味がない(管理者による編集)場合があります。

私の意見では、非常に基本的なチェック(たとえば、データがデータベースの制約と互換性がある場合)にはJSR 303を使用する必要がありますが、フロントエンドの詳細については、通常のJSF検証プロセスを使用します。

于 2012-06-08T13:29:32.323 に答える