<rich:popupPanel>
タグがあり、その中で<f:ajax>
イベントを使用しています。したがって、 に<rich:popupMenu>
も<h:from>
内部が必要です。私のajaxイベントでは、「メインページ」から値を取得する必要があるため、対応する :formid:elementid パターンを使用して実行リストにリストしますが、これは機能しません-値はリスナーメソッドでnullです。コードは次のとおりです。
<h:form id="form">
...
<h:selectOneMenu id="selectUser" value="#{usersBean.user_id}" styleClass="comboBoxes" >
<f:selectItems value="#{usersBean.myModelUsersValues}" />
<a4j:ajax event="valueChange" listener="#{usersBean.userSelected}" render="login password customer_name" execute="@this"/>
</h:selectOneMenu >
...
</h:form>
<rich:popupPanel id="popup" modal="true" autosized="true" resizeable="false">
<f:facet name="header">
<h:outputText value="Atributes" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#" onclick="#{rich:component('popup')}.hide(); return false;">
X
</h:outputLink>
</f:facet>
<h:form id="popupForm">
...
<h:selectOneListbox id="atrib_list" value="#{usersBean.atribSelect}" styleClass="comboBoxes" style="height:100px;width:100px;">
<f:selectItems value="#{usersBean.atribValues}" />
<f:ajax event="valueChange" listener="#{usersBean.atribValuesChanged}" render="child_list" execute="@this :form:selectUser"/>
</h:selectOneListbox >
...
</h:form>
</rich:popupPanel>
usersBean.atribValuesChanged
リスナー メソッドでは、フィールドusersBean.user_id
は空です (選択された値がありません)。form:selectUser 要素を強制的に実行して、リスナー メソッドで選択された値を読み取れるようにするにはどうすればよいですか?
パート2:
これはちょっとしたことです。質問、これについては別のスレッドを開く必要があるかもしれません。問題は、 の<h:selectOneListBox>
値が 1 つしかない場合、 のように作成されることですh:selectOneMenu
。これは見栄えが悪く、valueChange
選択してもイベントは発生しません。この問題は<h:selectManyListBox>
バグですか? それは修正可能ですか?