私は<p:commandButton disabled="#{scannerStatus.disabled}" actionListener="#{scannerStatus.activate}" id="button-id"/>
ScannerStatus には次のものがあります:
private boolean disabled;
// さらにゲッターとセッター
public void activate() {
this.setDisabled(true);
boolean status = doAnAction(); // This takes some seconds
if (!status) {
doSomething();
} else {
this.setDisabled(false);
}
}
問題は、line fromメソッドが呼び出されdisabled
たときに commandButton の属性が変更されないことです。this.setDisabled(true)
activate
disabled
commandButton の属性が になるまで数秒かかりますtrue
。
disabled
プロパティが false に戻され、commandButton の属性disabled
が更新されます。そのため、commandButton の更新は関数の終了後に行われます。
メソッドがアクティブになったときに commandButton の属性を更新するにはどうすればよいthis.setDisabled(true)
ですか?
RequestContext.getCurrentInstance().update("button-id");
その後使用してみましたthis.setDisabled
が、うまくいきません。