primefaces selectonemenu - setter未被调用

时间:2015-07-10 16:24:12

标签: jsf primefaces selectonemenu

我的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 ..

非常感谢您的帮助。 几乎尝试了一切:( 列表也没有解决我的问题。

2 个答案:

答案 0 :(得分:0)

只需删除valueListener并替换ajax标记,如下所示

<p:ajax listener=#{myPatientsBean.activateDefaultFilter}" update="patientdata" />

答案 1 :(得分:0)

这不是问题。我得到了解决方案。 我刚刚对getter和setter的类型感到困惑......我只有一个整数Setter但需要一个String。其余代码是正确的。

ty at all