0

<f:ajax> タグを <h:inputText> 内に配置して、キーを押すたびにリクエストを送信することで、Web フロー遷移をトリガーすることは可能ですか?

私はすでにこれを試しました.ajaxリクエストはブラウザによって送信され、アプリケーションによって受信され、JSFによって処理されますが、イベントはWebフローによって監視されません.

<!-- does not trigger transition -->
<h:inputText id="search" value="#{friendsForm.searchUsername}">
   <f:ajax listener="search" 
           execute="@this" 
           render="users" 
           event="keypress"/>
</h:inputText>

<!-- does trigger transition -->
<h:commandButton value="search" action="search">
   <f:ajax listener="search" execute="search" render="users"/>
</h:commandButton>

commandButton で同じことを行うと、期待どおりに機能します。ソース コードを見ると、ボタンの基本クラス UICommand がデフォルトの ActionListener を呼び出し、最終的にトランジションをトリガーすることがわかります。inputText にはアクションリスナーがないため、イベントはそこで処理されないようです。

最後に、キーを押すたびに非表示のボタンをプログラムでクリックすることでこれを回避できますが、これを回避できる場合はそうします。

前もって感謝します...

4

1 に答える 1