複数のコンポーネントで検証を使用したい.フォームには、3 つの h:selectOneMenu コンポーネントといくつかの h:inputText コンポーネントがあります。最初の h:selectOneMenu の変更時に、他のフィールドを検証せずに 2 番目の内容を変更する必要があります。ここでは、immediate="true" を使用しています。同様に、2 番目の h:selectOneMenu コンポーネント onching では、ここで 3 番目の SelectList のコンテンツを変更する必要があります。他のコンポーネントの検証をスキップしたいので、このコンポーネントにも immediate=true を使用しました。問題は、「immediate= true と FacesContext.getCurrentInstance().renderResponse()」が nonImediate コンポーネントでのみ機能することです。しかし、immediate=true を持つ 2 つのコンポーネントがあるため、最初の Select one を変更すると、2 番目の SelectOne リストにエラーが表示されます。これについて何か考えはありますか?ありがとうございます。私はJSF 1.2を使用しています
質問する
495 次
1 に答える
0
最初のh:selectOneMenuを選択すると、Beanで作業を実行できる値変更リスナーを使用でき、2番目のh:selectOneMenuのコンテンツを変更できます。このコンポーネントを再レンダリングする必要があります。このようにして、immediate="true"の部分が
これで、ページにimmediate = "true"を1つだけ入れることができ、1つのフィールドでのみ検証を行うことができます。
再レンダリングと値変更リスナーが使用したくない場合は、最初のimmediate = "true"コンポーネントを最初のフォーム内に配置し、2番目のimmediate="true"を別のフォーム内に配置できます。
このように、両方のフォームが異なるため、両方の場合の検証は、その特定のフォームが送信または処理されたときにのみ実行されます。
于 2012-04-23T13:58:05.387 に答える