我正在努力调整angular-ui-tree以在一对多实体模型中保留树结构。我缺少的部分是如何让Spring / Jackson解释以下POST主体
data: "{
"id":1.7976931348623157e+308,
"name":"New Category -- Need Name",
"parent":6,
"type":"create"
}"
使用Angular中的$http
服务方法进行序列化和传递:
$http.post("/rest/category",
{data: angular.toJson(updateData)}
)
.success(function(data, status, headers, config){
return [data, status];
})
.error(function(data, status, headers, config){
return [data, status];
})
现在,我只收到地址错误405s,返回值表示
Request method 'POST' not supported
所以,我修改了下面的控制器,从RequestBody中接收了一个DummyCategory
对象:
@RequestMapping(value = "/rest/category", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public List<Category> createCategory(@RequestBody DummyCategory data ){
log.info("Start creating category " + data);
}
这是这个实体:
@JsonDeserialize(using = DummyCategoryDeserializer.class)
public class DummyCategory {
private String type;
private String name;
private Long id;
private int parent;
//getters and setters
}
和相应的DummyCategoryDeserializer
类:
public class DummyCategoryDeserializer extends JsonDeserializer<DummyCategory> {
@Override
public DummyCategory deserialize(JsonParser jp, DeserializationContext ctx) throws IOException {
String tempData = jp.getText();
DummyCategory dummyCategory = new DummyCategory();
return dummyCategory;
}
}
由于我对此非常陌生,我的目标是在反序列化器方法中设置调试器断点并完成属性。但是,在进行这些自定义修改后,$http
服务仍在执行时返回405s,并且没有命中断点。
我知道服务器正常运行,因为所有GET请求都返回了预期值。
如果您想查看此问题的实际源代码,可以在category-taxonomy分支上找到它。新的反序列化器类位于/ models和/ utils
中