オブジェクト型の要素をajax経由でサーブレットに送信するにはどうすればよいですか? ajax では、以下のように値を渡しています。
data: { mapList : mapLists }
サーブレットで値を取得するには、次のようにします。
Object o = request.getAttribute("mapList");
System.out.println(o);
ただし、戻り値は常にnullです。この問題を回避するにはどうすればよいですか?
HTTP GET または POST リクエストでは、キーと値のペアのリストのみをパラメーターとしてサーバーに送信できるため、オブジェクトを手動でシリアライズして、その属性をこの形式で送信する必要があります。
HttpServletRequest.getParameter(String)
の代わりに使用することをお勧めしますHttpServletRequest.getAttribute(String)
。また、HTTP GET/POST パラメーターとして取得したものは、常にサーブレットでString
.
jQuery を使用して ajax リクエストを送信していると仮定します。また、 mapLists 変数が json オブジェクトであると仮定します。私の知る限り、jQuery は json オブジェクトをキーと値のペアの HTTP パラメータ リストに自動的に変換しないため、自分で変換してからサーブレットで解析する必要があります。JSON.stringify()を使用して json オブジェクトを変換するか、手動でシリアル化できます。
次の方法で ajax データを変更します。
data: { 'mapList' : mapLists }