Java SpringMVC,如何通过AJAX提交表单并使用ModelAttribute@Valid进入控制器

Java SpringMVC,如何通过AJAX提交表单并使用ModelAttribute@Valid进入控制器,java,ajax,spring,web,Java,Ajax,Spring,Web,我有以下表格: <form:form method="POST" action="${root}/Rhindo/Gerente/AddCargo" commandName="formCargo" > <div class="modal-body"> <div class="row"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">

我有以下表格:

<form:form method="POST" action="${root}/Rhindo/Gerente/AddCargo" commandName="formCargo" >
    <div class="modal-body">
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <label class="text-muted">Nome</label>
                <form:input type="text" path="nome" cssClass="form-control"/>
            </div>
        </div>
        <form:errors path="nome" cssClass="text-danger" />
        <br /><br />
        <div class="row">
            <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                <label class="text-muted">Salario</label>
                <form:input path="salario" placeholder="Somente Números" cssClass="form-control" value=""/>
            </div>
        </div>
        <form:errors path="salario" cssClass="text-danger" />
        <br /><br />
        <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
                <label class="text-muted">Requisitos</label>
                <form:textarea type="text" path="requisitos" cssClass="form-control" style="resize: none"/>
            </div>
        </div>
        <form:errors path="salario" cssClass="text-danger" />
        <br /><br />
        <div class="row">
            <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                <label class="text-muted">Carga Mínima</label>
                <form:input type="text" path="cargamin" cssClass="form-control" value=""/>
                <form:errors path="cargamin" cssClass="text-danger" />
            </div>
            <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
                <label class="text-muted">Desconto Impostos</label>
                <form:input type="text" path="descImpostos" cssClass="form-control" value=""/>
                <form:errors path="descImpostos" cssClass="text-danger" />
                <br />
            </div>
        </div>
    </div>
    <div class="modal-footer">
        <input type="button" class="btn btn-warning" value="Cancelar" data-dismiss="modal" />
        <input type="submit" class="btn btn-primary" value="Cadastrar Cargo" id="cadCargo" />
    </div>
</form:form>
Ajax脚本:

$(document).on('click', '#cadCargo', function (e) {
    e.preventDefault();  // prevent standard form submission
    var fdata = new FormData($('#formCargo')[0]);
    debugger;
    $.ajax({
        type: 'post',
        url: '/Rhindo/Gerente/AddCargo',
        data: fdata,
        async: false,
        cache: false,
        processData: false,
        dataType: "html",
        contentType: 'application/json',
        success: function (content) {
            debugger;
            $("#cadModal").html(content);
        },
    });
    return false;
});
和控制器:

@RequestMapping(value = "/Gerente/AddCargo", method = RequestMethod.POST)
public String getFormCargo(@RequestBody @ModelAttribute("formCargo") @Valid CargoCadastroModel cargoModel, BindingResult bindingResult, Model model) {
    if (bindingResult.hasErrors()) {
        model.addAttribute(cargoModel);
        return "/gerente/cadastroCargo";
    }
    else{

    }
    return "/gerente/cadastroCargo";
}
但是在控制器中,我的模型总是空的; 我只是尝试了JSON.strignify、序列化,但没有任何效果
请提供帮助

尝试从控制器的getFormCargo()访问
@ModelAttribute(“formCargo”)
。尝试从控制器的getFormCargo()访问
@ModelAttribute(“formCargo”)
@RequestMapping(value = "/Gerente/AddCargo", method = RequestMethod.POST)
public String getFormCargo(@RequestBody @ModelAttribute("formCargo") @Valid CargoCadastroModel cargoModel, BindingResult bindingResult, Model model) {
    if (bindingResult.hasErrors()) {
        model.addAttribute(cargoModel);
        return "/gerente/cadastroCargo";
    }
    else{

    }
    return "/gerente/cadastroCargo";
}