首先我用谷歌的DHC插件传递参数:情况如下: 注意data参数
ajax 传递方式如下:
或者
data:{ "username":"13923735854","signiture":"befe93d94c7b90720abb394cd68f415c4706e0a0","data":{" locationInfo":"朗山五号路"," longitude":"113.94698908","dimensions":"22.55339287"}}
形式上就是{key:value,key:value,key:{key:value,key,value}}
在Struts2后台使用get/set的方式接收参数。
private String data;
private String username;
我们发现,DHC插件的传递方式,我们发现data参数的值,可以取的到。但是如果是ajax的传递,我们的data就等于null。 而username确实有数据的。
有人说,将data的String类型改成Map<String,String>. 但是我们还是一样没有取到数据。这是为什么呢?我们该怎么取出String型的data参数。
因为ajax传递数据时,将所有数据封装成一个Map<String,String>类型。解析后。在action中我们可以直接根据key 键名取出数据,如username。
所有,如果action中。我们要取出String类型的data参数。我们就应该在ajax中将,data参数转译成一个键值对。
如:
"data":"{\"locationInfo\":\"朗山五号路\",\"longitude\":\"113.94698908\",\"dimensions\":\"22.55339287\"}"
这样,data参数,我们就可以在action中取出String型的data。 然后可以转成json个事,取出对应的参数。
如果,action要取出map形式的data。或者一个对象形式的data时。
那么ajax中就需要将data。封装在对象中。
如:
data.locationInfo:"朗山五号路",data.longitude:"113.94698908",data.dimensions:"22.55339287"