Primefaces Slider不会调用setter

时间:2012-11-22 11:24:13

标签: primefaces

我有一个primefaces(版本3.4.2)滑块和一个inputText用于滑块值的输出值。 问题是滑块的更改会更新inputText的显示值,但不会调用与inputText的setter绑定。

这是我的滑块:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:a4j="http://richfaces.org/a4j">

    <h:head>
        <title>Zinsrechner</title>
    </h:head>

    <h:body>

        <h:form>
            <h:panelGrid columns="1" style="margin-bottom:10px">
                <p:inputText id="x" value="#{zinsrechner.monatlicherBeitrag}" />
                <p:slider minValue="0" maxValue="150" for="x" />
            </h:panelGrid>
        </h:form>

    </h:body>

</html>

这是我的Setter,不叫:

public void setMonatlicherBeitrag( Double beitrag ) {
    monatlicherBeitrag = beitrag;
}

Getter IS被称为:

public Double getMonatlicherBeitrag() {
    return GuiParameter.getSpareinlageProMonat();
} 

2 个答案:

答案 0 :(得分:10)

在Slider中添加<p:ajax>即可。

示例:

<p:slider minValue="0" maxValue="150" for="x">
    <p:ajax event="slideEnd" process="x" />
</p:slider>

答案 1 :(得分:2)

我遇到了同样的问题,但在我的情况下,问题是我将vector<int> new_inds(arma_inds.size()); for (int i = 0; i < new_inds.size(); i++) new_inds[arma_inds[i]] = i; 标签设置为只读。我删除了该属性,一切正常。