我有一个<rich:popupPanel>
标签,里面使用了<f:ajax>
事件。因此<rich:popupMenu>
也需要在其内部有一个<h:from>
。在我的ajax事件中,我需要获取'主页'的值,因此我将它列在执行列表中,并带有相应的:formid:elementid模式,但这不起作用 - 该值在侦听器方法中为null。这里是代码:f:ajax里面rich:popupMenu不能执行不同形式的组件
<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
字段为空(不具有被选择,该值)。我如何强制执行表单:selectUser元素,以便我可以在我的侦听器方法中读取它的选定值?
第2部分:
这仅仅是一个BTW。问题,也许我应该为此打开另一个线程。问题是当<h:selectOneListBox>
只有一个值时,它更像h:selectOneMenu
。这看起来很糟糕,并且当您选择它时valueChange
事件不会被触发。 <h:selectManyListBox>
中不存在此问题是否是一个错误?它可以修复吗?
感谢这工作。你有第二部分的答案吗?到目前为止,我只能覆盖selectOneListBox的大小属性,并将其设置为2,如果usersBean.atribSelect.size()<2。 – 2012-07-05 12:47:00
不客气!对不起,我从来没有用过'h:selectOneListBox'。你应该为此提出另一个问题,以便得到更适当的关注。 – elias 2012-07-05 12:49:35