每行都有一个带h:selectOneMenu的数据表.我希望能够检索bean中selectOneMenu中选择的值.我正在使用richfaces a4j:support标签来对辅助bean进行
AJAX调用.你可以看到下面的代码:
DataTable标头:
<t:dataTable id="datatable" var="row" value="#{myBean.dataTableRows}">
SelectOneMenu with A4j:
<h:selectOneMenu id="type" label="Type:" styleClass="tamanho80" value="#{datatableHolder.selectedValue}" converter="comboConverter" immediate="true" > <f:selectItem itemValue="#{null}" itemLabel="" /> <t:selectItems var="tp" itemValue="#{tp}" itemLabel="#{tp.nome}" value="#{row.comboTypeValues}" /> <f:attribute name="row" value="#{row}"/> <a4j:support event="onchange" reRender="parent" actionListener="${myBean.executeAjax}" immediate="true" ajaxSingle="true" /> </h:selectOneMenu>
要执行的Backing Bean方法:
public void executeAjax(ActionEvent event){ ValueHolder comboBox = (ValueHolder) event.getComponent().getParent(); comboBox .getValue(); }
> comboBox .getValue()返回NULL,即使我选择了一个值.
PS:
这个问题已被确定为this question的可能重复,但事实并非如此.我的问题使用dataTable并且不对每个元素使用绑定.另外,我使用的是JSF 1.1和RichFaces 3.3.3.