Spring MVC中不存在必需的字符串参数错误
我尝试在Spring MVC中对我的控制器进行AJAX查询。
我的动作代码是:
@RequestMapping(value = "events/add", method = RequestMethod.POST)public void addEvent(@RequestParam(value = "start_date") String start_date, @RequestParam(value = "end_date") String end_date, @RequestParam(value = "text") String text, @RequestParam(value = "userId") String userId){
    //some code    
}
我的Ajax查询是:
$.ajax({        type: "POST",
        url:url,
        contentType: "application/json",
        data:     {
                start_date:   scheduler.getEvent(id).start_date,
                end_date:  scheduler.getEvent(id).end_date,
                text: scheduler.getEvent(id).text,
                userId: userId
        },
        success:function(result){
         //here some code
        }
    });
但我得到一个错误:
必需的字符串参数’‘start_date不存在
为什么?据我所知,它像(@RequestParam(value = "start_date") String start_date
现在我给404我的班级接受数据
public class EventData {    public String end_date;
    public String start_date;
    public String text;
    public String userId;
    //Getters and setters
}
我的js AJAX调用是:
$.ajax({    type: "POST",
    url:url,
    contentType: "application/json",
    // data: eventData,
    processData: false,
    data:    JSON.stringify({
        "start_date":   scheduler.getEventStartDate(id),
        "end_date":  scheduler.getEventEndDate(id),
        "text": scheduler.getEventText(id),
        "userId": "1"
    }),
和控制器动作:
@RequestMapping(value = "events/add", method = RequestMethod.POST)public void addEvent(@RequestBody EventData eventData){    
}
JSON数据是:
end_date: "2013-10-03T20:05:00.000Z"start_date: "2013-10-03T20:00:00.000Z"
text: "gfsgsdgs"
userId: "1"
回答:
在服务器端,您希望请求参数作为查询字符串,但在客户端,您将发送json对象。要绑定json,您将需要创建一个包含所有参数的类,并使用@RequestBody批注而不是@RequestParam。
@RequestMapping(value = "events/add", method = RequestMethod.POST)public void addEvent(@RequestBody CommandBean commandBean){
    //some code
}
以上是 Spring MVC中不存在必需的字符串参数错误 的全部内容, 来源链接: utcz.com/qa/418120.html
