2012-04-23 7 views
0

複数のコンポーネントで検証を使用します。このフォームには、h:selectOneMenuコンポーネントとh:inputTextコンポーネントがあります。最初のhの変更:selectOneMenu私は他のフィールドを検証せずに秒の内容を変更する必要があります。 同様に、2番目のh:selectOneMenuコンポーネントのonchangingは、他の人の検証をスキップしたい場合はこの3番目のSelectListの内容を変更する必要があり、このコンポーネントに対してもimmediate = trueを使用しました。問題は "immediate = trueであり、FacesContext.getCurrentInstance()。renderResponse()"は即時のコンポーネントのみで動作します。ただし、immediate = trueの2つのコンポーネントがあるため、最初に選択するとSelectエラーが2番目のSelectOneリストに表示されます。これについての任意のアイデア? ありがとうございました。 私はJSF 1.2を使用していますマルチプルの検証をスキップjsfで1つ選択してください

答えて

0

最初にhを選択すると:selectOneMenuでは、値変更リスナーを使用してBean内で作業を行い、2番目のh:selectOneMenuの内容を変更できます。これを再レンダリングする必要があります成分。このようにして、即時=「真」の部分は除外されます

これで、ページにimmediate = "true"を1つだけ入れることができます。

再レンダリングと値変更リスナーを使用しない場合は、最初のimmediate = "true"コンポーネントを最初のフォーム内に配置し、2番目のimmediate = "true"を別のフォーム内に配置できます。

両方のフォームが異なるため、この両方のケースでの検証は、特定のフォームが送信または処理された場合にのみ実行されます。

+0

返信ありがとうございます。しかし問題は何らかの理由でAJAXが私のアプリケーションで動かないので、私はreRenderを使うことができません。第2の解決策として、jsf 1.2でxhtmlで複数のフォームを使用する方法のサンプルの例を挙げることができます。 –

+0

私はrerender属性を使って作業することで、あなたの人生が楽になると思うでしょう.Ajaxがあなたのアプリケーションで動作しない理由をデバッグすることができます。複数のフォームの場合、xhtml pageに2つのフォームを含めることができます。私はFaceletsでJSFを使用していないので、2つのフォームを含む方法がJSF(2.0)とJSPs.With jspsを使用する方法と異なるかどうかはわかりません両方のフォームのフォームIDが異なるがあります。 – AngelsandDemons

関連する問題