我有一个PrimeFaces inputSwitch:
Clock Domain:
现在我想从我的数据库给这个开关一个初始值。我得到的价值是:
<p:inputSwitch id="snoozeSwitch" value="#{dashBController.snooze}" valueChangeListener="#{dashBController.updateSnoozeStatus}">
<p:ajax listener="#{dashBController.updateSnoozeStatus}" update="msgSnooze" />
</p:inputSwitch>
但我无法用新的值更新旧值。
@PostConstruct
public void init() {
if (!FacesContext.getCurrentInstance().isPostback()) {
snooze = getSnoozeStatus();
}
}
问题:我的应用程序始终使用初始值,因此开关会停留在原来的状态。也许@BalusC知道答案:)
答案 0 :(得分:0)
除非我遗漏了某些东西,否则你的解决方案似乎很简单。你为什么不只使用吸气剂和定位器?
getter应该从数据库加载值,setter应该保存它。我无法测试下面的代码,因为我没有PF 5.0.4,但它应该是一个好的开始。
public class DashBController {
private Boolean snooze = null;
public boolean isSnooze() {
if (snooze == null) {
snooze = getSnoozeStatus();
}
return snooze;
}
public void setSnooze(boolean snooze) {
this.snooze = snooze;
DBconnector.updateSnooze(this.snooze.toString());
}
}
简单地说:
<p:inputSwitch id="snoozeSwitch" value="#{dashBController.snooze}"/>