richfaces の inputNumberSlider または inputNumberSpinner を使用しようとしています。
問題は、Bean の値を更新できないことです。
私が試した2つの解決策は次のとおりです。
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 でセッターを呼び出すだけです。私は、文字列を受け取るセッターと整数を受け取るセッターの 2 つを書きました。それらのどれも呼び出されません
とにかくアイテムを再レンダリングするにはa4jサポートが必要ですが、番号2の実用的なソリューションが優先されます