我正在尝试使用richfaces inputNumberSlider或inputNumberSpinner。
问题是我无法更新我的bean中的值。
以下是我尝试的两种解决方案:
1)
<rich:inputNumberSlider value="#{skinningBean.currentSkin.topBar.bannerXOffset}"
valueChangeListener="#{skinningBean.valueBannerXOffSetChangeListener}"
onchange="A4J.findForm(this).submit()">
</rich:inputNumberSlider>
在豆子里:
public void valueBannerXOffSetChangeListener(ValueChangeEvent event) {
System.out.println("x value changed");
currentSkin.getTopBar().setBannerXOffset((Integer) event.getNewValue());
}
2)
<rich:inputNumberSpinner value="#{skinningBean.currentSkin.topBar.bannerYOffset}">
<a4j:ajax event="change" render="preview" oncomplete="initSlider()" />
</rich:inputNumberSpinner>
这应该只是在bean中调用我的setter。我写了两个setter,它接受一个String,一个接一个Integer。它们都没有被称为
虽然我无论如何都需要a4j supprt来重新渲染我的物品,但是首选的是2号工作解决方案
答案 0 :(得分:-1)
首先尝试以下操作,一旦开始工作,您可以添加 oncomplete 部分:
<rich:inputNumberSpinner value="#{skinningBean.currentSkin.topBar.bannerYOffset}">
<a4j:ajax event="onchange" render="preview" action="#{bean.valueBannerXOffSetChangeListener}" />
</rich:inputNumberSpinner>
可能需要重新定义bean函数以不接收参数。