2

JSF2とPrimefacesを使用しています。しかし、今度はもっと複雑な検証、具体的にはクロスフィールド検証と、おそらく式言語を含むいくつかの検証を行う必要があります(xhtmlページで条件付き検証を行うことができます)。

現在の設定ではこれらを実行できないと思いますが、次のような他のさまざまなアドオンについて読んでいます。

  • 縫い目
  • ExtVal
  • JSR303

最も推奨されるアプローチは何であるか疑問に思っていました。ExtValには前提条件としてMyFacesが必要ですか?もしそうなら、MyFacesはPrimeFacesと競合しますか?

私はさまざまなjarファイルを少し試しましたが、いくつかの競合のように見えるものに遭遇したので、フィードバックをいただければ幸いです。

[更新]私のコメントによると、私はOmniFacesを使用しました。これは、jarファイルをダウンロードしてから名前空間をページに追加した場合です。

...
      xmlns:o="http://omnifaces.org/ui"
      xmlns:of="http://omnifaces.org/functions"
...

そして、これをテストケースとして使用しました(passwordとconfirmPasswordが両方とも同じであることを確認しますが、どちらか一方に値がある場合のみ)。これは私の両方の「問題」を非常に簡単に解決します。

<o:validateEqual id="equal" components="password confirmPassword" disabled="#{editUserAdminController.user.password != '' || editUserAdminController.user.confirmPassword}"/>

ありがとう

4

1 に答える 1

2

JSR303編集:JSFは、アプリケーション/サーバーによって提供される場合の実装を使用できます。クロスフィールド検証は少し注意が必要ですが、技術を利用して確実に行うことができます。

また、OmniFacesライブラリも確認することをお勧めします。このライブラリは、他の多くの便利な機能の中でもクロスフィールド検証を備えており、特定のJSFフレームワークに関連付けられていません。

于 2012-09-11T11:39:30.120 に答える