JSF 2.0、モハラ 2.0.1、PrimeFaces 3.4.1
同様の質問がありますが、sthが必要です。そうしないと; javascript 関数は、js 関数から取得したい変数を埋めるバッキング Bean メソッドを待つ必要があります。私が言いたいのは:
<p:commandLink action="#{statusBean.getStatuses}" oncomplete="afterLoad()"/>
値を取得して画面に出力するだけのjs関数を想定しています。
function afterLoad() {
alert("#{statusBean.size}");
}
そして、これが誕生日の子供です:
@ManagedBean
@ViewScoped
public class StatusBean {
public int size=0;
List<Status> panelList = new ArrayList<Status>();
public void getStatuses() {
this.panelList = fillList();
this.size = panelList.size(); //Assuming 3
}
//getter and setters
}
そのため、関数はサイズを初期値である 0 として警告しますが、3 が表示されることを期待しています。
仕組み:@PostConstruct
Bean のヘッドにアノテーションを追加すると、Bean はページの読み込み前に既に構築されているため、確実に正しいサイズになります。ただし、これは冗長なプロセスを意味し、コマンドリンク アクションの後に必要な値です。では、js 関数を延期するにはどうすればよいでしょうか。何か案は?