2016-04-15 7 views
0

Webサービスを開発しています。フォーム送信時にapi/updateアクションを呼び出すと、jsp、data、およびidからの入力が2つあります。私はPOSTメソッドブロックで操作を実行したいと思います。ここPOSTメソッドREST Javaで渡されないパラメータJava

は、メソッド呼び出しの形式である:ここでは

<form id="myForm" action="api/update" method="post"> 
id: <input type="text" id="id" name="id"> 
<br/> 
<textarea id="data" name="data" rows="30" cols="100" placeholder="Empty File"></textarea> 
<br/> 
<button id="submit" type="submit">Submit</button> 
</form> 

をRESTコードです:問題はLINE1とLINE2が出力としてnullを与えることである

@Path("update") 
public class UpdateResource { 

    @Context 
    private UriInfo context; 

    public UpdateResource() { 
    } 

    @Context 
    private HttpServletRequest request; 
    @POST 
    public void putHtml() { 
     String data = request.getParameter("data"); 
     String id = request.getParameter("id"); 
     System.out.println(id); //<---- line1 
     System.out.println(data); //<---- line2 
     //further operations 
    } 
} 

、データがされていません何とか意味合格。何か間違っているのですか?ここで

は、Chromeブラウザのネットワーク]タブからキャプチャヘッダファイルです: Request Header has the data. underlined with red

+0

ここで、html形式の終了タグはど​​こですか? [ネットワーク]タブで開かれている開発ツールを使用してクロームでテストを実行し、実際にデータがサーバーに送信されていることを確認します。 – KyleM

+0

終了タグは何とか表示されていませんでした。修正されました。データが送信されています。私はネットワークタブから確認しました。 – BingAring

+0

@KyleMデータが送信されています。添付画像 – BingAring

答えて

1

代わりのHttpServletRequestからパラメータを取得しようとし、その理由は、エンティティボディということです@FormParam

@POST 
public void putHtml(@FormParam("id") String id, 
        @FormParam("data") String data) { 
} 

を使用既に読み取られているため、HttpServletRequestのパラメータが空になります。

+0

あなたの答えは正しいと思われますが、「すでに読み込まれてパラメータが空になっています」という意味の情報源がありますか?通常、属性は、上書きまたは削除されない限り、要求から何回でも読み取ることができます。 – KyleM

+0

@KyleM [getParameter'のjavadocの最後の段落](http://docs.oracle.com/javaee/7/api/javax/servlet/ServletRequest.html#getParameter-java.lang)を見てください。文字列 - )。他のJAX-RS/Jersey関連の文書でも読んだことがありますが、私が見た場所を覚えていないようです –

関連する問題