【发布时间】:2015-07-22 02:42:43
【问题描述】:
我需要通过 ajax(使用 Jquery)发送一个 JSON 对象,并通过 JSP 中的请求对象(服务器端)获取所有参数。
我的JS代码是:
var request = new Object();
request.param1= "value1";
request.param2 = "value2";
$.ajax({
type:'GET',
url: 'test.jsp',
//data: {request:JSON.stringify(dataSend)},
//data: {request:dataSend},
//data: JSON.stringify(request),
data:request,
async:true,
success:function(r){
console.log(r);
},
error:function(error){
console.log(error);
}
});
而我的 JSP 代码是:
<%@page import="cl.test.pos.web.delegate.POSXXXXXXXX"%>
<%@page import="org.json.simple.JSONObject"%>
<%
JSONObject j = new JSONObject();
if(session.getAttribute("role") != null ){
POSXXXXXXXX bx = new POSXXXXXXXX();
String je;
je = bx.setTest(request);
out.print(je);
out.close();
}else{
j.put("responseStatus","EXCEPTION");
request.getSession().invalidate();
out.print(j);
out.close();
}
%>
方法类是
public String setTest(HttpServletRequest request) throws IOException{
JSONObject j = new JSONObject();
try{
j.putAll(request.getParameterMap());
j.put("responseStatus", "OK");
}catch(FrameworkException e){
/*Any code*/
}catch(Throwable t){
/*Any code*/
}
return j.toJSONString();
}
我希望在客户端返回一个 JSON 对象,是这样的,但是,响应是这样的:
{"param1":[Ljava.lang.String;@182f12f,"param2":[Ljava.lang.String;@1a881f5}
值是无法理解的,如果我发送对象和数组,那也是错误的,例如:
{"parametro4[1][p3]":[Ljava.lang.String;@c5954b,"parametro4[1][p4]":[Ljava.lang.String;@1cc9339,"parametro5[arr1][ ]":[Ljava.lang.String;@1d5af30}
请帮助我从 HttpServletRequest 获取 JSONObject 的所有参数。我真的需要知道最好的方法。
(我已经在 StackOverFlow 和网上冲浪中进行了搜索,但找不到最好的方法)。
【问题讨论】: