Я использую RichFaces и хочу реализовать прямой поиск на моем сайте. Я получил поле ввода и div, который динамически создавался в моем бэкбоне. На самом деле метод bean.getResultsDiv() вызывает setResultsDiv() и создает объект MyFaces Div с учетом searchString. К сожалению, если я набираю один символ в моем поле ввода, повторное преобразование результатов-div происходит слишком рано, и строка поиска не будет обновляться. Как убедиться, что обработка char происходит сначала, а затем активирован метод bean-метода для создания нового результата-div? Заранее спасибо.RichFaces LiveSearch on inputField
<t:inputText id="mysearchString"
value="#{bean.searchString}"
onkeydown="jQuery('form_processSearchString').click();"
/>
<4j:commandButton id="processSearchString"
process="mysearchString"
reRender="results"
/>
<t:div id="results" binding="#{bean.resultsDiv}" />
ДОПОЛНЕНО-1: Я отлажена и теперь я могу видеть, что bean.searchString правильно обновляется. К сожалению, getter-метод для getResultsDiv() вызывается перед setSearchString (newStringToSeach). Как я могу убедиться, что сначала происходит обработка, а затем рендеринг.
Другой фрагмент кода я играл с (такое же поведение, перерисовка делец вызова срабатывает перед тем setSearchString()):
<t:inputText id="searchString"
value="#{beans.searchString}"
onkeydown="if (event.keyCode == 13) { return false; }">
<a4j:support event="onkeyup" requestDelay="200" ajaxSingle="true"
reRender="resultsDiv" eventsQueue="quicksearchqueue"
ignoreDupResponses="true"
process="searchString"
/>
</t:inputText>
Спасибо за помощь!
UPDATE-2: Я смог узнать, что получатель соответствующего привязки вообще не запускался, и поэтому нет никакой возможности, чтобы div был обновлен. Это проблема!
<t:div id="results" binding="#{bean.resultsDiv}" />