0

次のコードを参照してください。

<h:panelGrid columns="2" border="0" cellpadding="0" cellspacing="0">

    <p:inputText id="text" value="#{xTest.input}">

         <p:ajax process="text" update="searchResult" event="keyup" />

    </p:inputText>

    <h:panelGroup layout="block" id="searchResult" style="border: none;">

         #{xTest.input}

    </h:panelGroup>

</h:panelGrid>

xTestは、 を保持するためのフィールドを持つ単なるダミー Bean であり、inputに示されていpanelGroupます。

@formこれで、ajax タグを更新しない限り問題なく動作します。もしそうなら、ajaxタグは最初のキーアップを起動しますが、その後は起動しません。commandLink/button の問題に関する Balusc の回答を見てきました: commandButton/commandLink/ajax アクション/リスナー メソッドが呼び出されていないか、入力値が更新されていません。しかし、私はそれを理解していないので、この問題を回避するために何ができるか知りたい.

4

1 に答える 1

1

私の見解では、JSF 2.2 は適切にリリースされていませんでした。奇妙なバグがいくつかあり、現時点では修正に時間がかかります。私が言えることは、次のことです。

  1. 新しい名前空間で機能するものと、古い名前空間で機能するものがあります。それらを切り替えてテストできます
  2. jsf.js にはバグがあり、特にマルチパート フォームを使用している場合:バグを参照してください。
  3. フォームを含むコンポーネントをレンダリングする場合は、フォームもレンダリングに追加してみてくださいrender='comp @form。(役立つかもしれません)
  4. JSF 2.0 に戻して、適切な品質になったら 2.2.* に移行することをお勧めします。
于 2013-07-05T14:08:56.480 に答える