0

我正在尝试使用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 支持来重新渲染我的项目,但首选 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 回答