Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用多部分文件上载表单时,ModelAttribute为null_Jquery_Spring Mvc - Fatal编程技术网

Jquery 使用多部分文件上载表单时,ModelAttribute为null

Jquery 使用多部分文件上载表单时,ModelAttribute为null,jquery,spring-mvc,Jquery,Spring Mvc,我用一个文件创建了一个表单,我想发出一个ajax请求来上传这个文件 表单:请忽略我根据不同情况动态加载div时使用的choose标记 <form:form class="form-horizontal" method="post" modelAttribute="correspondenceForm" id="correspondenceForm" enctype="multipart/form-data"> <div class="form-group">

我用一个文件创建了一个表单,我想发出一个ajax请求来上传这个文件 表单:请忽略我根据不同情况动态加载div时使用的choose标记

<form:form class="form-horizontal" method="post" modelAttribute="correspondenceForm" id="correspondenceForm" enctype="multipart/form-data">
  <div class="form-group">
    <div id="applicationNumberDiv">
      <div class="col-sm-6">
        <label class="control-label">Application #</label>
        <form:input type="text" id="applicationNumber" name="app"        class="form-control"
value="" path="applicationNumber" />
        <form:errors path="applicationNumber" cssClass="error" />
        <div class="error">
          <jsp:text/>
        </div></div>
        <div class="col-sm-6">
          <label class="control-label">Jurisdiction</label>
          <form:input type="text" class="form-control" value="" id="jurisdiction"
path="jurisdiction" />
          <form:errors path="jurisdiction" cssClass="error" />
        </div></div></div>
        <div id="dynamicFields">
          <c:choose>
            <c:when test="${divSelector eq 1}">
              <div class="form-group">
                <div class="col-sm-6">
                  <label class="control-label">Mailing Date</label>
                  <div class='input-group date' id='datetimepicker1'>
                    <form:input type='text' class="form-control" path="mailingDate" />
                    <span
class="input-group-addon" >
                      <span class="icon icon-calendar"
data-alt="calendar">
                    </span></span>
                  </div></div>
                    <div class="col-sm-6">
                      <label class="control-label">Document code</label>
                      <form:input type="text" class="form-control" value="" path="documentationCode"/>
                    </div></div>
                    <div class="form-group">
                      <div class="col-sm-12">
                        <label class="control-label">Document Description</label>
                        <select
class="form-control" size="5">
                          <option
value="List of referencesList of references cited by examiner">List
of referencesList of references cited by examiner</option>
                          <option
value="List of References cited by applicant and considered by examiner">List
of References cited by applicant and considered by examiner</option>
                          <option value="Ex Parte Quayle Action">Ex Parte Quayle
Action</option>
                          <option value="Final Rejection">Final Rejection</option>
                          <option value="Non-Final Rejection">Non-Final Rejection</option>
                          <option value="Requirement for Restriction/Election">Requirement
for Restriction/Election</option>
                          <option value="Application summary of interview (PTOL-413)">Application
summary of interview (PTOL-413)</option>
                          <option value="Examiner initiated interview summary (PTOL-413B)">Examiner
initiated interview summary (PTOL-413B)</option>
                          <option value="Issue Notification">Issue Notification</option>
                          <option value="Notice of DO/EO Acceptance Mailed">Notice of
DO/EO Acceptance Mailed</option>
                          <option value="EFS Acknowledgment Receipt">EFS
Acknowledgment Receipt</option>
                          <option value="Notice of Allowance and fees due (PTOL-85">Notice
of Allowance and fees due (PTOL-85</option>
                          <option value="Specification">Specification</option>
                        </select>
                      </div></div>
                      <div class="form-group">
                        <div class="col-sm-12">
                          <label class="control-label">Attachment</label>
                          <div class="input-group">
                            <input id="uploadFile" placeholder="Choose File" disabled="disabled"
class="form-control" />
                            <div class="fileUpload btn btn-blue input-group-btn">
                              <span>Browse</span>
                              <form:input type="file" id="uploadBtn" class="upload"
path="attachment" />
                            </div></div></div></div>
                            <div class="modal-footer">
                              <button type="button" class="btn btn-cancel" data-dismiss="modal">Cancel</button>
                              <button id="submit" type="submit" class="btn btn-submit">Create</button>
                            </div>
                          </c:when>
                          <c:when test="${divSelector eq 2}">
                            <div class="modal-footer">
                              <button type="button" class="btn btn-cancel" data-dismiss="modal">Cancel</button>
                              <button type="button" class="btn btn-submit">New Application Create Request</button>
                            </div>
                          </c:when>
                          <c:when test="${divSelector eq 3}">
                            <div class="modal-footer">
                              <button type="button" class="btn btn-cancel" data-   dismiss="modal">Cancel</button>
                              <button type="button" class="btn btn-submit">Create New Application</button>
                            </div>
                          </c:when>
                        </c:choose>
                      </div>
                    </form:form>
Ajax调用我甚至没有得到应用程序编号

$("#correspondenceForm").submit(function (e) {
    e.stopPropagation();
    var data = { applicationNumber:$("#applicationNumber").val() };
    var json = JSON.stringify(data);


    $.ajax({
        url: './newCorrespondence',
        type: 'POST',
        data: json,
        cache: false,
        dataType: 'json',
        processData: false, 
        contentType: false, 
        success: function(data, textStatus, jqXHR)
        {
            if(typeof data.error === 'undefined')
            {
                alert("success");

                // Success so call function to process the form
                console.log('SUCCESS: ' + data.success);
            }
            else
            {
                // Handle errors here
                console.log('ERRORS: ' + data.error);
            }
        }
    });
});

设置spring的登录调试,您将看到发生了什么。如果@modeldattribute方法中存在异常,则可能会导致这样的结果。请尝试。我认为在ajax调用的情况下会发生这种情况。我设法通过Multipartrequest获取文件,但没有填充modelattribute
$("#correspondenceForm").submit(function (e) {
    e.stopPropagation();
    var data = { applicationNumber:$("#applicationNumber").val() };
    var json = JSON.stringify(data);


    $.ajax({
        url: './newCorrespondence',
        type: 'POST',
        data: json,
        cache: false,
        dataType: 'json',
        processData: false, 
        contentType: false, 
        success: function(data, textStatus, jqXHR)
        {
            if(typeof data.error === 'undefined')
            {
                alert("success");

                // Success so call function to process the form
                console.log('SUCCESS: ' + data.success);
            }
            else
            {
                // Handle errors here
                console.log('ERRORS: ' + data.error);
            }
        }
    });
});