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 但需要一个用于字符串。其余代码正确。

一共