本当にはフォームをajaxicallyに提出する必要がありますか?それはjsf.ajax.request()
が対象です。 <div>
の中にいくつかの静的コンテンツをロードするだけのようです。 jQuery.load()
と
<script>
$(document).ready(function() {
$.get("#{request.contextPath}/myCommunity/ajax/hotTopicDiscussion.faces", function(data) {
$("#discussionTopic").html(data);
});
});
</script>
<h:panelGroup id="discussionTopic" layout="block" />
あるいは、単純に、次のようにするだけの操作を行います。
<script>
$(document).ready(function() {
$("#discussionTopic").load("#{request.contextPath}/myCommunity/ajax/hotTopicDiscussion.faces");
});
</script>
<h:panelGroup id="discussionTopic" layout="block" />
両方のケースでは、私はhotTopicDiscussion.xhtml
は、ルート要素として<ui:composition>
を持っていることを前提とし、それだけで、必要なHTMLが含まれていること(したがって、 <html>
などではありません)。
あなたが本当に本当にのフォームをajaxicallyに提出する必要がある場合、JSがプログラムでボタンを「クリック」するようにするのが最も簡単です。それは適切かつ必要な電話番号までjsf.ajax.request()
コールまですべて委任します。とにかくページ上の物理的なフォーム/ボタンコンポーネントがないと、コールは役に立たない。必要に応じて、CSSでフォームを非表示にすることができます。
<script>
$(document).ready(function() {
$("[id='form:button']")[0].onclick();
});
</script>
<h:form id="form" style="display:none;">
<h:commandButton id="button" action="#{bean.submit}">
<f:ajax render=":discussionTopic" />
</h:commandButton>
</h:form>
<h:panelGroup id="discussionTopic" layout="block" />
実際のjsf ajaxリクエストを行う前に、なぜ 'jspPath + '/ myCommunity/ajax/hotTopicDiscussion.faces''に投稿リクエストを送信するのですか? –
'h:panelGroup'に' rerendered'属性とは何ですか?それは実際に存在しますか? –