すべての入力を受け入れる必要がある他のすべての状況で特定のアクションが実行された場合にのみ検証する必要がある入力コンポーネントがいくつかあります。
この方法では、通常のバリデーターを使用することはできませんが、アクション メソッド内のデータを評価し、何かが欠落している場合は特定の clientIds に関連するいくつかの FacesMessages を作成する commandButton があります。
通常、OmniFacesの o:highlightコンポーネントを使用して、追加のアクションが必要なフィールドを指しますが、この場合、入力コンポーネントは有効であるため、ハイライト コンポーネントはそれらを考慮しません。
この動作をメッセージ付きの Id のリストに依存させることが可能かどうか疑問に思います。
このようなもの:
for (Iterator<String> it = FacesContext.getCurrentInstance()
.getClientIdsWithMessages(); it.hasNext();) {
String clientId = it.next();
List<FacesMessage> messageList = FacesContext
.getCurrentInstance().getMessageList(clientId);
if (messageList != null) {
for (FacesMessage msg : messageList) {
... // build json with clientIds (maybe check for UIInput
}
}
}
この方法が必要な場合は、情報、警告、およびエラー メッセージ用の新しい Style クラスを導入できる可能性があります。コンポーネントツリー全体にアクセスする必要がないため、もう少し高速になるかもしれませんが、それは単なる推測です。
それで、あなたの意見は何ですか?これは現在の動作のかなり難しい変更であるため、この推測がオムニフェイスになるか、個別に実装する必要があるかはわかりません。