当我在 Play 的控制器类中使用 json 时!框架,我经历了一些我不知道为什么的事情。
我有两个 ajax 调用,所以我的控制器类有两个对应的方法,如下所示:
@BodyParser.Of(BodyParser.Json.class)
public static Result categoryAdder() {
....(using json)....
}
然后,
@BodyParser.Of(BodyParser.Json.class)
public static Result pathCalculator() {
MultipartFormData body = request().body().asMultipartFormData();
FilePart filePart = body.getFile("imageFile");
ObjectNode jsonResult = Json.newObject();
....
}
我使用了 ajaxForm,它是 jquery 的一个插件,将文件作为 multipartFormData 传递。当我把@BodyParser.Of(BodyParser.Json.class)
方法放在前面的时候pathCalculator()
,这个方法就抛出了一个空指针异常FilePart filePart = body.getFile("imageFile");
。这意味着请求里面没有任何文件。但是,当我@BodyParser.Of(BodyParser.Json.class)
从方法中删除时pathCalculator()
,它运行良好。@BodyParser.Of(BodyParser.Json.class)
需要吗?我不知道为什么。奇怪的是,该方法categoryAdder()
在@BodyParser.Of(BodyParser.Json.class)
放置之前运行良好。
有没有人知道为什么会发生这种情况?