我有一个primefaces(版本3.4.2)滑块和一个用于滑块值输出值的inputText。
问题是滑块的变化会更新 inputText 的显示值,但不会调用绑定(bind)到 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>
这是我的二传手,不叫:
public void setMonatlicherBeitrag( Double beitrag ) {
monatlicherBeitrag = beitrag;
}
Getter 被称为:
public Double getMonatlicherBeitrag() {
return GuiParameter.getSpareinlageProMonat();
}
最佳答案
在您的Slider中添加<p:ajax>
可以解决问题。
例子:
<p:slider minValue="0" maxValue="150" for="x">
<p:ajax event="slideEnd" process="x" />
</p:slider>
关于Primefaces Slider 不调用 setter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13511711/