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";
}