0

オブジェクト型の要素をajax経由でサーブレットに送信するにはどうすればよいですか? ajax では、以下のように値を渡しています。

data: { mapList : mapLists }

サーブレットで値を取得するには、次のようにします。

Object o = request.getAttribute("mapList");
System.out.println(o);

ただし、戻り値は常にnullです。この問題を回避するにはどうすればよいですか?

4

2 に答える 2

0

HTTP GET または POST リクエストでは、キーと値のペアのリストのみをパラメーターとしてサーバーに送信できるため、オブジェクトを手動でシリアライズして、その属性をこの形式で送信する必要があります。

HttpServletRequest.getParameter(String)の代わりに使用することをお勧めしますHttpServletRequest.getAttribute(String)。また、HTTP GET/POST パラメーターとして取得したものは、常にサーブレットでString.

jQuery を使用して ajax リクエストを送信していると仮定します。また、 mapLists 変数が json オブジェクトであると仮定します。私の知る限り、jQuery は json オブジェクトをキーと値のペアの HTTP パラメータ リストに自動的に変換しないため、自分で変換してからサーブレットで解析する必要があります。JSON.stringify()を使用して json オブジェクトを変換するか、手動でシリアル化できます。

于 2013-02-13T16:55:22.203 に答える
0

次の方法で ajax データを変更します。

data: { 'mapList' : mapLists }
于 2013-02-13T16:49:10.580 に答える