独自のパラメーターを追加できるように、すべての ajax 応答で送信されるものをサーバー側に追加するにはどうすればよいですか?
カスタム イベントをトリガーするためにrichfaces JavaScript を拡張A4J.AJAX.finishRequest
しました。サーバーからパラメーターを渡したいと思います。
var originalFinishRequest = A4J.AJAX.finishRequest;
A4J.AJAX.finishRequest = function(request) {
var parameters = request.options.parameters;
if (!request._oncomplete_aborted) {
jQuery(document).trigger('onAutofocus',parameters);
}
originalFinishRequest(request);
};
それを見る別の方法は、サーバー側が A4J.AJAX.Submit への呼び出しに応答し、それを自分のコードでラップするにはどうすればよいかということです。
私の解決策
これは、BalusC の回答に基づいて、マスター テンプレートに入れることになったものです。
<a4j:outputPanel ajaxRendered="true">
<c:if test="#{not empty flowScope.autofocusSelectors}">
<script>
document.autofocusSelectors = #{flowScope.autofocusSelectors};
console.log("BASE TEMPLATE: autofocus: (#{flowScope.autofocusSelectors})");
</script>
</c:if>
<script>
console.log("BASE TEMPLATE AJAX RENDER")
//NB: autofocusSelectors not always set, and not only reason to autofocus
jQuery(document).trigger('onAutofocus');
</script>
</a4j:outputPanel>