0

JQuery ajax を使用してページの一部を読み込みたい。

url は Struts2 アクション リクエストです。

$("#accountListDiv").html(ajax_load).load(url, $("#testform").serializeArray(),   function(){
    //alert('done');
});

//serializeArray とシリアライズが機能していません。(Struts アクションは、これらの関数によって生成される形式のデータを期待している可能性があります。この問題に関するより多くの洞察が役立ちます)。

通常の HTTP リクエストの場合、Struts2 アクションのすべての変数には、JSP ページで入力された値が自動的に割り当てられます。

Ajaxを使用しながら同じことをしたい。このように、すべてのパラメーターを明示的にフォームに渡したくありません。

$("#indexDiv").html(ajax_load).load(url, "rateTypeId4Index="+rateTypeId4Index, function(){
    xyz();
});

Struts 用の Dojo プラグインがあることは知っていますが、非推奨です。JQueryを使用してこの問題を解決できれば、それで十分です。

(JQuery-struts プラグインを使用しないソリューションを探しています)。

4

3 に答える 3

1

serializeではなく使用することを意味すると思いますserializeArray

于 2012-04-23T21:22:02.383 に答える
0

1 Struts2 部分ではなく、リクエストの送信に問題があります。文字列の代わりにパラメーターのマップを設定してみてください。

$("#accountListDiv").html(ajax_load).load(url, {'param1':value1, 'param2':value2},   function(){
    //alert('done');
});

2 ajax を使用してフォームを送信する場合は、Jquery Formプラグインを使用します。

  $("#testform").ajaxSubmit({
      type: "POST",
      success: function(data) {
        $('#accountListDiv').html(data);
        alert('Yeh-ha!');        
      },
      error: function(request, textStatus, errorThrown) {
        alert('Oops');
      }}
  );
于 2012-04-24T05:48:31.323 に答える
0

JQuery と Struts2 で以下を使用しました。

<script>

    function bindDivFormSubmission(theDiv) {

        /* get the form from the div and unbind it */
        var theForm = theDiv.find('form');
        theForm.unbind();

         /* attach a submit handler to the form */
        theForm.submit(function(event) {

            /* stop form from submitting normally */
            event.preventDefault(); 

            var url = theForm.attr( 'action' ),
                formData = theForm.serialize();

            /* Send the data using post and put the results in a div */
            $.post( url, formData,
              function( data ) {
                  theDiv.html( data );
                  bindDivFormSubmission(theDiv);
              }
            );

        });

    }

    var accountListDiv = $("#accountListDiv");

    bindDivFormSubmission(accountListDiv);

</script>

「bindDivFormSubmission(theDiv);」を再帰的に呼び出していることに気付くかもしれません。divを置き換えた後。これは、私の使用では、バインドが必要な別のフォームに div が置き換えられたためです。

于 2012-04-29T22:21:33.640 に答える