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

回到顶部