我有一个控制器方法来接受来自前端的模型(ajax post)。
控制器如下,
@RequestMapping(value="/lead_post", method = RequestMethod.POST,produces="application/json")
public @ResponseBody Response create_Task(ModelMap model,@ModelAttribute("lead_post") LeadModal leadmodal,HttpSession ses)
{
ajax Post请求如下,
$.ajax({
type:"POST",
url : "/biz/lead_post",
data : {
clientName : $('#clientName').val(),
companyName : $('#companyName').val(),
contactNumber : $('#contactNumber').val(),
address : $('#address_').val(),
meetingDate : $('#meetingDate').val(),
meetingTime : $('#meetingTime').val(),
productsDealingWith : $('#productsDealingWith').val(),
nadInCharge : $('#nad_dropdown').val,
},
success : function(data) {
},
error: function(e) {
alert("error"+e.Message);
}
});
LeadModal如下,
public class LeadModal {
private String clientName;
private String companyName;
private Long contactNumber;
private String address;
private Date meetingDate;
private Time meetingTime;
private String productsDealingWith;
private Integer nadInCharge;
private Integer tmeInCharge;
private String status;
private Integer nadAcceptanceStatus;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Integer getNadAcceptanceStatus() {
return nadAcceptanceStatus;
}
public void setNadAcceptanceStatus(Integer nadAcceptanceStatus) {
this.nadAcceptanceStatus = nadAcceptanceStatus;
}
......
我有类似的功能,但是在这里模型显示了ajax帖子被触发时的所有空值。我还尝试使用postman工具手动发送POST请求,但它仍然显示空值。 任何建议将不胜感激,谢谢。
答案 0 :(得分:0)
实际上,ajax发送的日期(即yyyy-mm-dd)与LeadModal收到的日期之间的日期格式不匹配。
我必须在LeadModal中声明日期格式以接受yyyy-mm-dd这样的格式,
private @DateTimeFormat(pattern="yyyy-MM-dd") Date meetingDate;
由于一个不匹配的参数,@ ModelAttribute无法使用前端ajax post映射模型。