@ModelAttribute从ajax post获取空值

时间:2017-06-20 08:55:57

标签: javascript jquery ajax spring-mvc

我有一个控制器方法来接受来自前端的模型(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请求,但它仍然显示空值。 任何建议将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

实际上,ajax发送的日期(即yyyy-mm-dd)与LeadModal收到的日期之间的日期格式不匹配。

我必须在LeadModal中声明日期格式以接受yyyy-mm-dd这样的格式,

private @DateTimeFormat(pattern="yyyy-MM-dd") Date meetingDate;

由于一个不匹配的参数,@ ModelAttribute无法使用前端ajax post映射模型。