0

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の実用的なソリューションが優先されます

4

1 に答える 1

-1

最初に次のことを試してください。動作するようになったら、oncomplete部分を追加できます。

<rich:inputNumberSpinner value="#{skinningBean.currentSkin.topBar.bannerYOffset}">
  <a4j:ajax event="onchange" render="preview" action="#{bean.valueBannerXOffSetChangeListener}" />
</rich:inputNumberSpinner>

パラメータを受け取らないように、Bean 関数を再定義する必要がある可能性があります。

参照: https://community.jboss.org/message/588944#588944

于 2013-03-28T10:23:58.273 に答える