Richfaces 3.3プロジェクトを4に移行しようとしています。rich:suggestionBoxコンポーネントをリッチ:オートコンプリートコンポーネントに変換しますが、大きな問題があります。Richfaces 4オートコンプリートコンポーネントAJAXバリューアップデート
要件は次のとおりです。オートコンプリートの一部を記入し、ユーザーに適切なオプションを提示します。ユーザーがドロップダウンから何かを選択すると、コンポーネントはその値を更新し、それ自体を無効にし、ユーザーが編集できる2次フィールドのデフォルト値を計算/更新する必要があります。これまでのところ私はこれ持っている:ユーザーがjsFuncが呼び出されるものを選択したときに、今
<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>
を、assignDefaultNicknameが呼び出され、すべてがassignDefaultNicknameの計算は、の値を決定するために使用するという事実を除いて、正常に動作しますセカンダリフィールドindividualUserStrはspecies_nameの値に依存しますが、フォームをサブミットするまで、species_nameはサブミットされないため、assignDefaultNicknameで実行された計算は正しくありません。
assignDefaultNicknameが呼び出される前にsomeBean.selectedIndividualElem.userCommonNameで何らかの方法でセッターを呼び出す必要がありますが、これを行う方法がわかりません。 AJAXとこのオートコンプリート機能に問題があるようです。これは、このラウンド・アット・バウトのjsFunctionコンポーネントを使用して、最初にメソッドを呼び出す必要がある理由の一部です。
これを解決する方法の提案はありますか?