js如何接收action传递过来的Json数组
JSONArray jsonArray = JSONArray.fromObject(list);
req.setAttribute("jsonArray",jsonArray);
这是某个action中的代码,在通过返回字符串由struts2传递到页面
jsp 代码:
<script type="text/javascript">
function show(){
var jsonarray = document.getElementById("json").value;
alert(jsonarray.size());
var jsonStr = 'jsonArray';
alert(jsonarray.size());
// var objs = eval(data);
for(var i = 0; i < jsonarray.length; i++) {
alert(jsonarray[i].Address);
alert(jsonarray[i].State);
}
}
</script>
</head>
<body onload="show()">
<!--<div style="left:0;top:0;width:100%;height:100%;border:0px;solid#000" id="container"></div>-->
<%Object jsonstr =session.getAttribute("jsonArray");%>
<input type="hidden" id="json" value=<%=jsonstr %>>
</body>
不知道为什么JSP页面都是空白? 展开
post的话是没有办法直接获取得
如果是同一个页面,考虑直接用js函数获取,不提交
如果是不同页面,只能通过ajax变成get方式
get的话,一个正则.二是split,具体如下
办法一: 正则
function getAction(name) {
var reg = new RegExp("(^|&)" + name
+ "=([^&]*)(&|$)", "i");
var r =
window.location.search.substr(1).match(reg);
if (r != null) return
unescape(r[2]); return null;
}办法二: split
function getAction() {
var url = location.search; //获取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1]);
}
}
return theRequest;
}