我的问题如下: 我正在对一个jsp进行AJAX调用,并且他们正在获取一个包含标志和ArrayList的JSON对象
JSP:
Gson gson = new Gson();
JsonObject root = new JsonObject();
root.addProperty("flag", flag); //add flag
root.addProperty("list", gson.toJson(list));
out.println(gson.toJson(root));
现在在我的AJAX函数的成功函数中,我想转移到其他一些jsp,所以我做了类似的事情:
success: function(response){
alert(JSON.stringify(response.list));
//alert(JSON.stringify(response.flag));
if(JSON.stringify(response.flag).indexOf("true")>=0){
location.href="GroupLoginScreen.jsp";
}
else{
alert("UNSUCCESSFUL");
}
}
现在,问题部分虽然我在这里得到的结果正确但是如何将这个列表作为一个参数发送到带有GroupLoginScreen.jsp的URL中,这样在接收端就可以通过这样做来获得:
ArrayList<String> list1 = (ArrayList<String>)request.getAttribute("mylist");
答案 0 :(得分:0)
location.href =“GroupLoginScreen.jsp”将从浏览器发出新的GET请求,因此在GroupLoginScreen.jsp中,您无法获得“mylist”属性。
您需要使用encodeURIComponent函数将列表编码为String,然后将'mylist'作为查询参数添加到GroupLoginScreen.jsp中。
代码如下:
var mylistParam = encodeURIComponent ( json_text_of_the_list );
location.href = "GroupLoginScreen.jsp?mylist=" + mylistParam;
在GroupLoginScreen.jsp。
中String myList = request.getParameter("mylist");
Convert myList as String into ArrayList