1

ajax 呼び出しを介してフォーム データを struts2 アクションに送信しようとしています。私はスタックオーバーフローや他のチュートリアルで多くの投稿を経験しました。すべての手順を適切に実行しているにもかかわらず、アクション メソッドで null 値を取得しています。

問題を解決するために私を助けてください。この投稿は重複している可能性がありますが、古い投稿のいずれにも適切な回答が見つかりませんでした.

JSP コード

 <script  type="text/javascript" charset="utf-8">
     $(document).ready(function() {
 var dataObj = $("#dForm").serialize();
 $("#submitdata").click(function(){
        $.ajax( {
          traditional: true,
          type: "POST",      
          url: "data/postData",
          contentType: "application/x-www-form-urlencoded",
          async: false,
          data : dataObj,
          success: function(response) {
                alert("success "+response);
          },
          error: function(e) { 
                alert("error "+e.Message);
          }
        });
    }); 
  </script>

  <s:form name="dataform" id ="dForm" method="post">
    <s:textarea id="data" name="data" class="data" rows="4" cols="100" />
    <s:submit  type="submit" value="submit" id="submitdata" />
</s:form>

アクション クラス

  public class DataAction {
     String data;

        public String getData() {
            return data;
    }

    public void setData(String data) {
      this.data = data;
    }

        public String postData() {
          System.out.println("** postData called *** "+getData());
          //Here getData always return null.
          return "Success";
        }
  }

Struts.xml

   <package name="Data" extends="json-default" namespace="data">
    <action name="postData" class="com.data.action.DataAction"
        method="postData">
        <result type="json"></result>
    </action>
   </package>

他に何をしなければなりませんか?また、 ajax で async: true を設定すると、アクション メソッドが呼び出されません。私の主な関心事は、なぜ Data が null なのかということです。

ajax なしで同じことをすると、完全に機能します。

助けてください....

4

0 に答える 0