description客户端发送的请求在语法上是不正确的

时间:2015-05-28 07:14:21

标签: java spring jsp model-view-controller

我正在尝试通过ajax和Jquery在控制器上调用save方法时使用Spring MVC,Jquery,Hibernate和tomcat。点击保存按钮我在tomcat上得到这个语法不正确的错误这里是代码

<script type="text/javascript">

    function invokeCancel() {
        var a = confirm("are you sure to cancel the page");
        if (a == true) {
            var urlString = "display.do";

            $.ajax({
                type : "GET",
                url : urlString,
                success : function(response) {
                    $("#addEditViewcontractDetailsDiv").html("");
                    $("#addEditViewcontractDetailsDiv").hide();

                },
                error : function() {
                    alert("Error occured during cancel process");
                }
            });
        } else
            return false;
    }

    $("#piId").focusout(function() {
        valaidateElement('piId', 'c1');
    });
    $("#piName").focusout(function() {
        validateElement('piName', 'c2');
    });
    $("#studyId").focusout(function() {
        validateElement('studyId', 'c3');
    });
    $("#studyName").focusout(function() {
        validateElement('studyName', 'c4');
    });
    $("#contractType").focusout(function() {
        validateElement('contractType', 'c5');
    });
    $("#contractStartDate").focusout(function() {
        validateElement('contractStartDate', 'c6');
    });
    $("#contractEndDate").focusout(function() {
        validateElement('contractEndDate', 'c7');
    });
    $("#paymentTerms").focusout(function() {
        validateElement('paymentTerms', 'c8');
    });
    $("#modeOfPayment").focusout(function() {
        validateElement('modeOfPayment', 'c9');
    });

    $("#panNumber").focusout(function() {
        validateElement('panNumber', 'c10');
    });
    function validateAllElements() {
        return valaidateElement('piId', 'c1')
                && validateElement('piName', 'c2')
                && validateElement('studyId', 'c3')
                && validateElement('studyName', 'c4')
                && validateElement('contractType', 'c5')
                && validateElement('contractStartDate', 'c6')
                && validateElement('contractEndDate', 'c7')
                && validateElement('paymentTerms', 'c8')
                && validateElement('modeOfPayment', 'c9')
                && validateElement('panNumber', 'c10');
    }
    $(document).ready(function() {

        for ( var i=1; i<11; i++) {

            $("#c" + i).hide();
        };


        $("#saveBtn").click(function() {
if (validateAllElements()) {
            $("#contacrtDetailsPage").submit();
            }
        });
    });
    $("#updateBtn").click(function() {
        if (validateAllElements()) {
            $("#contacrtDetailsPage").attr("action", "updateContract.do");
            $("#contacrtDetailsPage").submit();
        }
    });

    $(document)
            .ready(
                    function() {

                        $("#removeVariable").hide();
                        var counter = 2;

                        $("#addVariable")
                                .click(
                                        function() {
                                            $("#removeVariable").show();
                                            if (counter > 10) {
                                                alert("Only 10 milestones allow");
                                                return false;
                                            }

                                            var newTextBoxDiv = $(
                                                    document
                                                            .createElement('div'))
                                                    .attr(
                                                            "id",
                                                            'milestoneDiv'
                                                                    + counter);

                                            newTextBoxDiv
                                                    .after()
                                                    .html(
                                                            '<div class="row">'
                                                                    + '<div class="col-md-12">'
                                                                    + '<p class="bx-form"><label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MileStone '
                                                                    + counter
                                                                    + '  </label>'
                                                                    + '&nbsp;'
                                                                    + '<input type="text" size="32" id="mileStone"  placeholder="Please Enter Milestone" name="mileStone' + counter + 
          '" path="mileStone' + counter + '" value="" ></p></div></div>');

                                            newTextBoxDiv
                                                    .appendTo("#mileStoneGroup");

                                            counter++;
                                        });

                        $("#removeVariable").click(function() {

                            counter--;

                            $("#milestoneDiv" + counter).remove();
                            if (counter == 2) {
                                $("#removeVariable").hide();
                                alert("No more milestones to remove");
                                return false;
                            }
                        });

                    });
</script>


</head>
<body>

    <sf:form id="contacrtDetailsPage" page="contacrtDetailsPage"
        modelAttribute="contractDetails" method="post"
        action="saveContract.do">


        <div class="mx-main">
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h3 class="panel-title">
                        Contract Details &nbsp; >> &nbsp;
                        <c:choose>
                            <c:when test='${ACTION_TYPE == "EDIT"}'>
                                        Update 
                                    </c:when>
                            <c:otherwise>
                                        Create
                                    </c:otherwise>
                        </c:choose>
                    </h3>
                </div>
                <div class="panel-body">
                    <sf:hidden path="contractDetailsId" />


                    <div class="row">
                            <div class="col-md-12">
                                <p class="bx-form">
                                    <label for="piId">Pi Id&nbsp;<font
                                        color="red">*</font></label>
                                    <sf:input path="piId"
                                        placeholder="Please enter Pi Id" type="text"
                                        id="piId"  cols="34" rows="4"  maxlength="60"/>
                                    <span id="c1" class="label label-warning">This information is required.</span>
                                </p>
                            </div>
                        </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="piName">PI Name&nbsp;<font color="red">*</font></label>
                                <sf:input path="piName" placeholder="Please Enter PI Name"
                                    type="text" id="piName" size="60" maxlength="60" />
                                <span id="c2" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="studyId">Study Id&nbsp;<font color="red">*</font></label>
                                <sf:input path="studyId" placeholder="Please Enter Study Id"
                                    type="text" id="studyId" size="60" maxlength="60" />
                                <span id="c3" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="studyName">Study Name&nbsp;<font color="red">*</font></label>
                                <sf:input path="studyName" placeholder="Please Enter Study Name"
                                    type="text" id="studyName" size="60" maxlength="100" />
                                <span id="c4" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="contractType">Contract Type&nbsp;<font
                                    color="red">*</font></label>
                                <sf:select path="contractType" id="contractType">
                                    <sf:option value="">-- Select Contract Type --</sf:option>
                                    <sf:option value="Actual">Actual</sf:option>
                                    <sf:option value="Additional">Additional</sf:option>
                                    <sf:option value="Lab">Lab</sf:option>
                                    <sf:option value="Extension">Extension</sf:option>

                                </sf:select>
                                <span id="c5" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row" id="otherType">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="contractStartDate">Contract Start Date
                                    &nbsp;<font color="red">*</font>
                                </label>
                                <sf:input type="date" path="contractStartDate"
                                    placeholder="Please Enter Contract Start Date"
                                    id="contractStartDate" size="60" />
                                <span id="c6" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row" id="otherType">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="contractEndDate">Contract End Date&nbsp;<font
                                    color="red">*</font></label>
                                <sf:input path="contractEndDate"
                                    placeholder="Please Enter Contract End Date" type="date"
                                    id="contractEndDate" size="60" />
                                <span id="c7" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="paymentTerms">Payment Terms&nbsp;<font
                                    color="red">*</font></label>
                                <sf:select path="paymentTerms" id="paymentTerms">
                                    <sf:option value="">-- Select Payment Terms --</sf:option>
                                    <sf:option value="One Term">One Term</sf:option>
                                    <sf:option value="MileStone">MileStone</sf:option>

                                </sf:select>
                                <span id="c8" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row" id="mileStoneGroup">
                        <div class="col-md-12" id="milestoneDiv">
                            <p class="bx-form">
                                <label for="mileStone1">MileStone &nbsp;</label>
                                <sf:input path="mileStone" placeholder="Please Enter MileStone1"
                                    type='textbox' id="mileStone1" size="60" maxlength="11" />
                                <button type="button" id="addVariable" name="addVariable">
                                    <img src="../images/save2.jpg" />
                                </button>
                                &nbsp;&nbsp;
                                <button type="button" id="removeVariable" name="removeVariable">
                                    <img src="../images/minus.png" />
                                </button>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="contractOthers">Others</label>
                                <sf:input path="contractOthers"
                                    placeholder="Please Enter Others" type="text"
                                    id="contractOthers" size="60" maxlength="60" />
                            </p>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="irbPayment">IRB Payment</label>
                                <sf:input path="irbPayment" id="irbPayment"
                                    placeholder="Please Enter IRB Payment" type="text" size="60"
                                    maxlength="60" />
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="iecPayment">IEC Payment</label>
                                <sf:input path="iecPayment" id="iecPayment"
                                    placeholder="Please Enter IEC Payment" type="text" size="60"
                                    maxlength="60" />
                            </p>
                        </div>
                    </div>
                    <div class="row" id="otherType">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="modeOfPayment">Mode of Payment&nbsp;<font
                                    color="red">*</font></label>
                                <sf:select path="modeOfPayment" id="modeOfPayment">
                                    <sf:option value="">-- Select Mode of Payment--</sf:option>
                                    <sf:option value="Cheque">Cheque</sf:option>
                                    <sf:option value="Draft">Draft</sf:option>
                                    <sf:option value="Cash">Cash</sf:option>
                                </sf:select>
                                <span id="c9" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="inFavorOf">In Favor Of</label>
                                <sf:input path="inFavorOf"
                                    placeholder="Please Enter In Favor Of" type="text"
                                    id="inFavorOf" size="60" maxlength="60" />
                            </p>
                        </div>
                    </div>


                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="paybleAt">Payable At</label>
                                <sf:input path="paybleAt" id="paybleAt"
                                    placeHolder="Please Enter The Payable At" size="60"
                                    maxlength="60" />
                            </p>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <label for="panNumber">PAN Number&nbsp;<font color="red">*</font></label>
                                <sf:input path="panNumber" id="panNumber"
                                    placeHolder="Please Enter The PAN Number" size="60"
                                    maxlength="30" />
                                <span id="c10" class="label label-warning">This
                                    information is required.</span>
                            </p>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-12">
                            <p class="bx-form">
                                <c:choose>
                                    <c:when test='${ACTION_TYPE == "EDIT"}'>
                                        <button type="button" id="updateBtn" class="btn btn-success">Update</button>
                                    </c:when>
                                    <c:otherwise>
                                        <button type="button" id="saveBtn" name="cmd"
                                            class="btn btn-success">Save</button>
                                    </c:otherwise>
                                </c:choose>
                                &nbsp;&nbsp;
                                <button type="button" id="cancelBtn" class="btn btn-warning"
                                    onclick="javascript:invokeCancel();">Cancel</button>

                            </p>
                        </div>
                    </div>
                </div>
            </div>
        </div>


    </sf:form>

</body>
</html>
Controller:Code
/************************************* Save ContractDetails *****************************/
    @RequestMapping(value = "/saveContract", method=RequestMethod.POST)
    public ModelAndView saveContractDetails(ContractDetails contractDetails,
            BindingResult result) {
        contractDetailsService.createContractDetails(contractDetails);
        ModelAndView model = new ModelAndView(PagesI.CONTRACT_DETAILS_DISPLAY);
        model.addObject("contractDetailsList",
                contractDetailsService.getContractDetailsList());
        model.addObject("DISPLAY_VIEW_PAGE", "Y");
        return model;
    }

1 个答案:

答案 0 :(得分:0)

您的控制器内的saveContractDetails方法似乎缺少一些东西。

当您提交表单时,您正在发送“/ saveContract”请求并将模型属性contractDetails传递给它。

为了让Spring能够处理您的请求,我认为您必须在saveContractDetails方法的声明中指定您要发送模型属性。 我会尝试这样的事情:

@RequestMapping(value = "/saveContract", method=RequestMethod.POST)
public ModelAndView saveContractDetails(@ModelAttribute ContractDetails contractDetails,
        BindingResult result) { ... }