我有一个<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>
它只有一个值时,它被创建得更像一个h:selectOneMenu
。这看起来很糟糕,并且valueChange
当您选择它时不会触发该事件。这个问题不存在<h:selectManyListBox>
是不是bug?它可以修复吗?