<f:ajax>
デフォルトのレンダリングの出力をオーバーライドしたいと思います。<f:ajax>
このタグのレンダラーごとにタグの処理をオーバーライドする可能性はありますか?
1 に答える
2
<f:ajax>
カスタムClientBehaviorRenderer
実装を作成<client-behavior-renderer>
しfaces-config.xml
てレンダラー タイプとして登録することで、レンダラーをオーバーライドできますjavax.faces.behavior.Ajax
。
public class YourAjaxBehaviorRenderer extends ClientBehaviorRenderer {
@Override
public String getScript(ClientBehaviorContext behaviorContext, ClientBehavior behavior) {
return "alert('Put your JS code here.')";
}
}
<render-kit>
<client-behavior-renderer>
<client-behavior-renderer-type>javax.faces.behavior.Ajax</client-behavior-renderer-type>
<client-behavior-renderer-class>com.example.YourAjaxBehaviorRenderer</client-behavior-renderer-class>
</client-behavior-renderer>
</render-kit>
@FacesBehaviorRenderer
に類似した注釈があることに注意してください。ただし@FacesRenderer
、任意の に特定のレンダラー タイプが既に登録されてfaces-config.xml
いる場合は、常に注釈よりも優先されます。これは JSF impl 自体によって既に提供されているため、アノテーションは役に立たなくなります。
参考までに、Mojarra はこの目的でcom.sun.faces.renderkit.html_basic.AjaxBehaviorRenderer
使用し、MyFaces は使用します。org.apache.myfaces.renderkit.html.HtmlAjaxBehaviorRenderer
于 2015-05-29T10:31:32.370 に答える