我的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 ..
非常感谢您的帮助。 几乎尝试了一切:( 列表也没有解决我的问题。
答案 0 :(得分:0)
只需删除valueListener并替换ajax标记,如下所示
<p:ajax listener=#{myPatientsBean.activateDefaultFilter}" update="patientdata" />
答案 1 :(得分:0)
这不是问题。我得到了解决方案。 我刚刚对getter和setter的类型感到困惑......我只有一个整数Setter但需要一个String。其余代码是正确的。
ty at all