読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

PrimeFacesでBackingBeanからJavaScriptを実行する方法

PrimeFaces

少し前に「PrimeFacesのRequestContextはパワフルな予感」でPrimeFacesのRequestContextに触れましたが、その時の例はaddCallbackParamメソッドを利用してBackingBeanが持つ情報をViewのJavaScript側へコールバックで返すものでした。

RequestContextはAPIとして

  • isAjaxRequest()
  • addCallBackParam(String name, Object value)
  • update(String clientId)
  • execute(String script) ←今日使ったのはこれ
  • scrollTo(String clientId)

を持っています。

今日初めてexecuteを利用したのでメモ。

executeはイメージとしてはBackingBeanからJavaScriptを実行できるものです(^^)

以下のように色々処理した結果、ダイアログ表示をBackingBeanから指示するとか。

public String hogeHoge(){

    // ... 色々処理あって ... //

    // ... ある条件をみたした場合にJavaScriptダイアログ呼ぶ ... //
    if(hoge){
        RequestContext context = RequestContext.getCurrentInstance();
        context.execute("hogeDlg.show();");
        return null;
    }

    // ... 続く ... //
}

どこでも使えるだけに逆に使いどころが難しかったりもしますが(JSFのViewで定義されたダイアログがBackingBeanから呼ばれてる何て中々思わないので…可読性落ちたり)、簡単に使える分、うまく使えば便利だったりも。

なんかまだまだPrimeFacesの機能を使いこなしていない(^^;

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村