primefaces selectonemenu - setter 未被调用
primefaces selectonemenu - setter is not called
我的 selectonemenu 在选择一个选项后既不调用 setter 也不调用 getter。
地图在下拉列表中正确显示。
这是我的代码:
<p:selectOneMenu id="filter" value="#{myPatientsBean.selectedFilter}"
valueChangeListener="#{myPatientsBean.activateDefaultFilter}">
<f:selectItems value="#{myPatientsBean.defaultFilterEntries.entrySet()}" var="map" itemValue="#{map.value}" itemLabel="#{map.key}"/>
<p:ajax update="patientdata" event="change" />
</p:selectOneMenu>
这是支持 Bean:
public Map<String, String> getDefaultFilterEntries() {
return getPatientForFilter().getDefaultFilterEntries(getCurrentUser().hasRight(UserRight.PATIENTVIEWALL));
}
public void setSelectedFilter(String index) {
selectedFilter = Integer.parseInt(index);
if (selectedFilter == -1) {
setUseDefaultFilter(false);
}
}
public String getSelectedFilterString() {
return Integer.toString(selectedFilter);
}
也调用了 ValueChangeListener..
非常感谢您的帮助。
几乎尝试了一切:(
列表也不能解决我的问题。
只需删除 valueListener 并替换 ajax 标记,如下所示
<p:ajax listener=#{myPatientsBean.activateDefaultFilter}" update="patientdata" />
那不是问题所在。我得到了解决方案。
我只是对 getter 和 setter 的类型感到困惑...我只有一个整数 Setter 但需要一个用于字符串。其余代码正确。
一共
我的 selectonemenu 在选择一个选项后既不调用 setter 也不调用 getter。 地图在下拉列表中正确显示。
这是我的代码:
<p:selectOneMenu id="filter" value="#{myPatientsBean.selectedFilter}"
valueChangeListener="#{myPatientsBean.activateDefaultFilter}">
<f:selectItems value="#{myPatientsBean.defaultFilterEntries.entrySet()}" var="map" itemValue="#{map.value}" itemLabel="#{map.key}"/>
<p:ajax update="patientdata" event="change" />
</p:selectOneMenu>
这是支持 Bean:
public Map<String, String> getDefaultFilterEntries() {
return getPatientForFilter().getDefaultFilterEntries(getCurrentUser().hasRight(UserRight.PATIENTVIEWALL));
}
public void setSelectedFilter(String index) {
selectedFilter = Integer.parseInt(index);
if (selectedFilter == -1) {
setUseDefaultFilter(false);
}
}
public String getSelectedFilterString() {
return Integer.toString(selectedFilter);
}
也调用了 ValueChangeListener..
非常感谢您的帮助。 几乎尝试了一切:( 列表也不能解决我的问题。
只需删除 valueListener 并替换 ajax 标记,如下所示
<p:ajax listener=#{myPatientsBean.activateDefaultFilter}" update="patientdata" />
那不是问题所在。我得到了解决方案。 我只是对 getter 和 setter 的类型感到困惑...我只有一个整数 Setter 但需要一个用于字符串。其余代码正确。
一共