0

メソッド action="POST" を持つ jsp があります。最初に、この jsp は URL にクエリ文字列 param1=paramValue1 を指定してコントローラー (Spring) を介して呼び出されます。(例: /thisJsp.jsp?param1=paramValue1)。Spring はここで GET メソッドを使用したため、クエリ パラメータが読み取られます。

後で、非表示のフォーム入力フィールド $('#param1').val(paramValue2) を設定する javascript を介して submit() を実行します。

私の問題はコントローラーに戻ることです。メソッドアクションが POST であることを登録しますが、request.getParameter("param1") を実行すると、常に paramValue1 が返されます。

Fiddler を使用すると、param1=paramValue2 が登録されていることがわかります。これは、submit() に設定されていることを意味します。

私は何が欠けていますか?

Tomcat サーバーと Spring 2.0.7 を使用しています

4

1 に答える 1

0

POST の送信先の URL がわかりますか? フォームには、「アクション」プロパティが設定されている場合とされていない場合があります。設定されていない場合は、ページが現在表示されているのと同じ URL に POST します。これにより、クエリ文字列に ?param1=paramValue1 を含む URL に POST する状況が発生する可能性がありますが、投稿本文には param1=paramValue2 も含まれます。アクションがクエリ文字列なしで "/thisJsp.jsp" だけに設定されるようにフォームを変更すると、問題が解決する可能性があります。

一般に、GET または POST のいずれかの要求に、同じ名前のパラメーターを複数回含めることは有効です。また、コントローラーで request.getParameterValues("param1") を呼び出すこともできます。これにより、文字列の配列が返されます。これは、実際に param1 の両方の値を渡しているかどうかを確認する良いテストになります。

于 2012-08-14T20:31:58.920 に答える