我正在尝试对控制器进行调用,但我期望的对象包含Set数据类型,我不确定帖子数据应该如何显示。
型号:
public class Notebook{
private string name;
private Set<Todo> todos;
}
public class Todo{
private String name;
}
控制器
@RequestMapping(method = RequestMethod.POST)
public void createNotebook(Notebook q){
questionnaireService.saveOrUpdateNotebook(q);
}
目前我尝试发布如下例子:
curl --data "name=some notebook&todos[0].name=todo1&todos[1].name=todo2" http://localhost:8080/api/notebook
似乎不起作用。任何人都有使用套装的经验吗?
答案 0 :(得分:1)
您应该使用Notebook q
注释限定@RequestBody
,以便可以将请求映射到Notebook
类型的对象。有关Spring MVC doc中输入数据和转换器格式的更多信息:Mapping the request body with the @RequestBody annotation。
我们以JSON格式从前端发送数据,并使用Jackson JSON将其转换为Java对象。如果你走这条路,你可以直接将todos
声明为Set<String>
,输入将是
{
name: "some notebook",
todos: ["todo1", "todo2"]
}