【问题标题】:primefaces selectonemenu - setter is not called [duplicate]primefaces selectonemenu - 不调用设置器[重复]
【发布时间】:2015-07-10 16:24:12
【问题描述】:

我的 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 也被调用..

非常感谢您的帮助。 几乎所有东西都试过了:( 列表也不能解决我的问题。

【问题讨论】:

    标签: jsf primefaces selectonemenu


    【解决方案1】:

    只需删除 valueListener 并替换 ajax 标签如下

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

    【讨论】:

    • a valuechangelistener 也可以正常工作。这不是问题。
    【解决方案2】:

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

    完全没有

    【讨论】:

    • 好的,你可以关闭问题了。
    猜你喜欢
    • 2014-01-28
    • 1970-01-01
    • 2015-04-28
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2021-03-03
    • 2016-06-29
    相关资源
    最近更新 更多