4

ここで質問しましたが、明らかな情報が不足していると思います。したがって、私は再び質問を投稿しています。

h:inputText フィールドで必要な検証を行う JSF フォームがあります。フォームを送信するときに、必要な検証チェックをスキップ (または無視) し、アプリケーションを呼び出します。フォーム データの検証を行い、いくつかの条件に基づいてエラーを表示したいと考えています。

基本的に、フォームが ajax 呼び出しを使用して送信されたときに検証をスキップしてアプリケーションを呼び出し、送信ボタンをクリックしてフォームが送信されたときに検証を実行したいと考えています。

4

1 に答える 1

10

その条件をそのままrequired属性に入れるだけです。

<h:inputText ... required="#{someCondition}" />

つまり、他の多くの属性と同様に、任意の EL 式を受け入れるだけです。"true"多くの初心者は、または文字列のみをハードコーディングできると考えています"false"。これは真実ではありません。

たとえばtrue、保存ボタンが実際に押されたときにのみ評価するようにするには、次のようにします。

<h:inputText ... required="#{not empty param[save.clientId]}" />
...
<h:commandButton value="Cancel" ... />
<h:commandButton binding="#{save}" value="Save" ... />

(注: コードはそのままで完全です。Bean プロパティにバインドする必要はありません)

このように、required属性trueは保存ボタンが押されたときにのみ評価さfalseれ、他のボタンまたは ajax イベントリスナーに対して評価されます。

于 2013-10-31T17:15:43.317 に答える