Facelets: 直接 Ajax を呼び出し

使い方

  • jsf.ajax.request をもちいると、JSF において さまざまな Ajax 処理を利用することができるようになります。

XHTML

  1. <h:outputScript name="jsf.js" library="javax.faces" target="head" />
  2. <li id="idSubmit">
  3. <h:commandButton id="idSubmitButton" value="なにか処理" action="#{someBean.submit(someArg)}" />
  4. </li>
  5. <h:outputText id="submitResult" value="#{someBean.submitResult}" style="display:none" />
  6. <script type="text/javascript">
  7. $('#idSubmit').click(function(event) {
  8. jsf.ajax.request(event.target, event,
  9. {render: '<フォームID>:submitResult', onevent: function(event) {
  10. if (event.status == 'complete') {
  11. if (event.responseText.indexOf('&gt;SUCCESS&lt;') > 0) {
  12. window.alert('成功しました。');
  13. } else {
  14. window.alert('失敗しました。');
  15. }
  16. }
  17. }
  18. });
  19. // event.preventDefault();
  20. });
  21. </script>

ポイント

  • event.preventDefault(); が必要な場合と不要な場合がありケース・バイ・ケースです。
  • Ajax の戻り XML について もっとまじめにパースするという手もあります。

リンク