1

アプリケーションをjsf1.2からjsf2.0に移行し、Ajax4JSF(ajax4jsf-1.1.1)をRichfaces4.2.2にアップグレードします。古いコードでは、org.ajax4jsf.framework.ajax.AjaxActionComponentを使用して、一部のコンポーネントの「rerender」属性をプログラムで設定する場所があります。関連するコードは次のとおりです。

public void changeReRender(UIComponent comp){
    AjaxActionComponent commandAjax = (AjaxActionComponent)comp;
    HashSet values = new HashSet();
    values.add("idToBeRerendered");
    commandAjax.setReRender(values);
}

ただし、Richfaces 4では、AjaxActionComponentクラスが削除されました。AjaxActionComponentの代わりに使用できるクラス、またはUIComponentの「rerender」属性をプログラムで変更する別の方法はありますか?

4

1 に答える 1

1

JSF2には、オブジェクトを使用してIDをプログラムでレンダリングするためのより一般的なアプローチがありPartialViewContextます。次のスニペットを試してください

      public void changeReRender(UIComponent comp){
            // AjaxActionComponent commandAjax = (AjaxActionComponent)comp;
            // HashSet values = new HashSet();
            // values.add("idToBeRerendered");
            // commandAjax.setReRender(values);
           FacesContext context = FacesContext.getCurrentInstance();
           PartialViewContext partialContext =  context.getPartialViewContext(); //obtain a reference to the PartialViewContext object
           //add the desired id to the list of render ids 
           partialContext.getRenderIds().add("idToBeRerendered");
        }
于 2013-03-18T23:52:31.120 に答える