Попытка перенести проект Richfaces 3.3 на 4. Получил компонент rich: SuggestionBox и преобразовал его в компонент rich: autocomplete, но у него возникли серьезные проблемы.
Требования: заполните часть автозаполнения, она предоставляет пользователю подходящие варианты.Когда пользователь выбирает что-то из выпадающего списка, компонент должен обновить его значение, отключить себя, а также вычислить / обновить значение по умолчанию во вторичном поле, которое пользователь может редактировать.Пока у меня есть это:
<a4j:jsFunction name="jsFunc"
execute="autoComplete"
render="species_name individualUserStr"
actionListener="#{individualsBean.selectedIndividualElem.assignDefaultNickname}"/>
<rich:autocomplete
autocompleteMethod="#{individualsBean.speciesForBox}"
mode="cachedAjax"
layout="table"
var="sp"
id="species_name"
value="#{individualsBean.selectedIndividualElem.userCommonName}"
fetchValue="#{sp.commonName}"
disabled="#{individualsBean.selectedIndividualElem.userCommonName != null
and individualsBean.selectedIndividualElem.userCommonName ne ''}"
onselectitem="jsFunc()"
>
...
</rich:autocomplete>
<h:inputText value="#{individualsBean.selectedIndividualElem.ssi.individualUserStr}"
id="individualUserStr"
maxlength="28"
styleClass="inputTextMediumRF">
</h:inputText>
Прямо сейчас, когда пользователь выбирает то, что вызывается jsFunc, метод assignDefaultNickname вызывается, и все работает отлично, за исключением того факта, что вычисление в assignDefaultNickname используется для определенияЗначение вторичного поля IndividualUserStr зависит от значения видов_имя, но вид_имя не отправляется до тех пор, пока я не отправлю форму, поэтому вычисление, выполненное в assignDefaultNickname, является неправильным..selectedIndividualElem.userCommonName, перед вызовом assignDefaultNickname, но я не могу понять, как это сделать.Кажется, есть проблемы с AJAX и этой функцией автозаполнения;Это одна из причин, почему я должен использовать этот обходной компонент jsFunction, чтобы вообще вызвать метод.
Есть предложения о том, как решить эту проблему?