primefaces selectonemenu ajax listener无法在Dialog Box中工作

时间:2014-06-04 11:50:29

标签: java ajax primefaces

我正在尝试检索Dropdown / selectonemenu的值,它位于Dialog中。 但是没有使用listener / valueChangeListener。

我的xhtml代码:

<p:selectOneMenu id="test" value="#{report.location}" style="width:13% !important;">
<p:ajax listener="#{report.locationChange}" />
<f:selectItem itemLabel="All" itemValue="All" />
<f:selectItem itemLabel="INSHOP" itemValue="INSHOP" />
<f:selectItem itemLabel="INSTORAGE" itemValue="INSTORAGE" />
</p:selectOneMenu>

我的侦听器Java代码打印位置值:

public void locationChange() {
//location = (String) ((UIOutput) event.getSource()).getValue();
System.out.println("Location :: "+location);
}

它不打印位置,只给我NULL。

但是当我在DIALOG框外尝试同样的事情时,它会显示正确的结果。

1 个答案:

答案 0 :(得分:0)

尝试在p:selectOneMenu中使用 valueChangeListener =“#{report.locationChange}”而不是p:ajax

<h:selectOneMenu value="#{qbaggageModel.deliveryAddrType}">
   <f:selectItem itemLabel="Select" itemValue=""> </f:selectItem>
   <f:selectItem itemLabel="Permanent" itemValue="Perm"> </f:selectItem>
   <f:selectItem itemLabel="Temporary" itemValue="Temp"> </f:selectItem>
   <f:ajax execute="@form" render="delDtlsDiv" listener="#{qbaggageHandler.copyAddress}" />
</h:selectOneMenu>

注意:此代码应包含在&lt; h:form&gt;&lt; / h:form&gt;