2

私はjavascriptで持っています

var data = new Object();

このオブジェクトのいくつかの属性は次のとおりです。

data.name = "mike";
data.id = 1;

jquery を使用してオブジェクトを jsp ページに渡します

var request = $.ajax
({
 url: "test.jsp",
 type: "post",
 data:  'obj='+ data,
success:    function(msg) {
     $('#response').html(msg);},
  error:function (xhr, ajaxOptions, thrownError){
 alert(xhr.status);
 alert(thrownError);
}  
});

私が言うjspで

Object objParam = request.getParameter("obj"); out.println(objParam.name);

これはうまくいかないようです。助けてください。

4

3 に答える 3

2
  1. JSP に投稿しているため、必ずdoPost(request, response)メソッド内で処理してください。
  2. 通常、渡されるすべてのデータは JSON 形式である必要があります。あなたの場合、それは読むべきです

    data: {'obj' : data}
    
  3. サーバー側で解析するには、org.jsonライブラリを使用します。

        JSONObject obj = (JSONObject) JSONValue.parse(request.getParameter("obj"));
        Iterator<?> keys = obj.keys();            
        //iterate over the properties of the JSON object
        while( keys.hasNext() ){
            String key = (String)keys.next();
            if( obj.get(key) instanceof JSONObject ){
                //a JSONObject inside the JSONObject
            } else {
                //process
            }
        }
    

    ドキュメントを参照してください: JSONObject

于 2013-01-26T05:16:53.703 に答える
0

クライアント側ではjsonデータ(json.stringify()でjsonデータに変換されたjavascriptオブジェクト)を渡すことができます。

    public class User{
private String userName;
//getters
//setters
    }

JSON形式

{"userName":"test_username"}

これで、GSON ライブラリを使用して JSON データを Java オブジェクトにマップできるようになりました。

たとえば、以下のリンクを参照してください

https://sites.google.com/site/gson/gson-user-guide

于 2013-03-26T10:42:53.907 に答える
0

javascript のオブジェクトは、java のオブジェクトとは異なります。2つはまったく比較できません。ここでは、javascript オブジェクトをそのまま送信しています。これは json 文字列に変更する必要があります。

data:  'obj='+ JSON.stringify(data),

また、サーバーでは、json文字列を取得し、次のようなメカニズムを使用してそのjsonをJavaオブジェクトに変換する必要がありますObjectMapper

Object objParam = request.getParameter("obj");

ObjectMapper om = new ObjectMapper();
om.readValue(objParam.toString(), ...);
于 2013-01-26T06:59:22.380 に答える