1
私はファイルアップロードオプションと他の入力パラメータのホストを含むWebフォームを持っています。私は、Jerseyのリクエストハンドラでこれを処理する方法を探しています。メソッドのパラメータはファイルの入力となり、 "その他のすべてのパラメータ"となります。マルチパート/フォームデータファイルアップロード+ Jerseyの他のパラメータ
This questionは、ブラウザが別個のマルチパートオブジェクトとしてそれらを送信するため、カスタムモデルオブジェクトに他のパラメータを取得できないことを説明しています。私が試した次のことはMultivaluedMap
で他のパラメータを取得した
@POST
@Produces("text/html; charset=\"UTF-8\"")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Page handlePost(@FormDataParam("icon") InputStream iconInputStream,
@FormDataParam("icon") FormDataContentDisposition iconContentDispositionHeader,
MultivaluedMap<String, String> formParams) {
...
}
残念ながら、これはどちらか動作しません。
フォームには約20個のパラメータがあります(そのうちの1つはマルチセレクションオプションです)、メソッドパラメータとして1つずつ処理したくありません。クエリ可能な単一のオブジェクト内の他のすべてのパラメータを取得する方法はありますか?
完璧に動作します:私はちょうどこのような一つRESTfulなサービスを終了しましたか?クエリパラメータ?他のマルチパートフィールド? –
後者の場合は、 '@ FormDataParam'を使用してそれらのすべてを取得することもできます。値をフィールドの名前に設定するだけです。文字列パラメータを使用するだけです。一つのオブジェクトにすべてを取り込もうとするなら、 '@ BeanParam'を使うことができます。マルチパートデータにも有効です。あるいは、 'FormDataMultiPart'をパラメータとして使用し、すべてを手動で抽出することができます –