受信されたパラメータは、名前や年齢や他の多くのものと言えるでしょう。私はコードの中でそれをキーとして特定しています(明らかに動作しません)。
あなたはすでにそれは、対応するHTMLフォームで定義されている@FormParam
は、フォームパラメータの名前を期待しているので、それがそのように動作しませんがわかったよう。つまり、どのフォームパラメータをこのメソッドのパラメータ(value
)に割り当てるかを知っておく必要があります。
FormParamパラメータ
は、メソッドパラメータの値は、要求エンティティ本体にフォームパラメータから抽出されることを指定し:ここ
がJAX-RS specificationから抽出@FormParam
注釈の定義であります。アノテーションの値は、フォームパラメータの名前を識別します。注釈ターゲットはフィールドとメソッドでの使用を許可していますが、仕様ではリソースメソッドのパラメータへの使用のみサポートする必要があることに注意してください。
そして、次のようにそれに加えて、あなたのリソースメソッドに@Consumes
注釈を追加する必要があります
@POST
@Path("/save")
@Consumes("application/x-www-form-urlencoded")
public Response saveS(@FormParam(key) String value) throws SQLException {
return Response.ok("TODO", MediaType.APPLICATION_JSON).build();
}
アップデート: 私は自分自身を試していないが、あなたは私を試してみて、伝えることができますそれが動作すれば。ここでは、すべてのフォームフィールドを解析できるようにすべてのパラメータを取得する必要があります。
@POST
@Consumes("application/x-www-form-urlencoded")
public void post(MultivaluedMap<String, String> formParams) {
// parse the map here
}
FormParamを使用しなくても、それを行う方法はありませんか? – Arturo
それがあなたを助けるかどうかわからない、私は答えを更新しました。私は答えを修正するように見て、私にフィードバックをお願いします。 – ujulu