嘗試將Richfaces 3.3項目遷移到4.獲得rich:suggestionBox組件並將其轉換爲rich:autocomplete組件,但遇到重大麻煩。Richfaces 4自動完成組件AJAX值更新
要求是:填寫部分自動填充,它向用戶提供合適的選項。當用戶從下拉菜單中選擇一些內容時,組件應該更新它的值,禁用它自己,並且還計算/更新用戶可以編輯的輔助字段中的默認值。到目前爲止,我有這樣的:
<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取決於species_name的值,但在我提交表單之前不會提交species_name,因此在assignDefaultNickname中完成的計算不正確。
我需要以某種方式調用個人Bean.selectedIndividualElem.userCommonNamesetter,在assignDefaultNickname被調用之前,但我無法弄清楚如何做到這一點。 AJAX和這個自動完成功能似乎有問題;這就是爲什麼我必須首先使用這個循環的jsFunction組件甚至調用方法的原因的一部分。
關於如何解決這個問題的任何建議?