Playのコントローラークラスでjsonを使用したとき!フレームワーク、私は私が理由がわからなかった何かを経験しました。
2つのajax呼び出しがあったので、コントローラークラスには次のような2つの対応するメソッドがありました。
@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();
....
}
jqueryのプラグインであるajaxFormを使用して、ファイルをmultipartFormDataとして渡しました。@BodyParser.Of(BodyParser.Json.class)メソッドの前に置くpathCalculator()と、このメソッドはにnullポインター例外をスローしましたFilePart filePart = body.getFile("imageFile");。これは、リクエストにファイルが含まれていないことを意味します。@BodyParser.Of(BodyParser.Json.class)ただし、メソッドから削除するpathCalculator()と、うまく機能しました。@BodyParser.Of(BodyParser.Json.class)必要ですか?どうしてか分かりません。奇妙なことは、メソッドが前に配置されcategoryAdder()ている間にうまく機能することです。@BodyParser.Of(BodyParser.Json.class)
この状況が発生する理由を知っている人はいますか?