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)
この状況が発生する理由を知っている人はいますか?