最近在做一个数据查询系统,前台html,jsp调用java类中的查询函数得到json数据,write(json),由html前端显示。在这个过程中,需要参数的传递,具体如下:
.txt文件-----(1)----->index.html-----(2)----->dataview.html-----(3)----->datasearch.jsp-----(4)----->java
(1) .txt中,json格式,{id: "2", text: "***室", url: "dataview.html?id=2"}
index.html中,js中写function onNodeSelect(e) {
if (e.isLeaf) {
viewframe.src = e.node.url; 、//此处用到了上面的url
}
}
(2)index.html传值给dataview.html,用的是url中的“?id=2”。在dataview.html中,js将其解析出来:
var urlInfo=window.location.href;
var argsIndex=urlInfo.indexOf("?");
var args=urlInfo.substring((argsIndex+1)).split("&");
var pageid="";
var argsInfo="";
for(i=0;i<args.length;i++){
var argResult=args[i].split("=");
pageid=argResult[1];
}
pageid就是拿到的参数。dataview.html页面中的某个元素要用pageid这个参数,比如有个grid,数据从后台来,grid需要传参id到后台,此时,js中这样写:
grid.url="../../datasearch.jsp?id="+pageid;
这样将id传给jsp页面。
(3) jsp页面用int newsId=Integer.parseInt(request.getParameter("id"));这种方式拿到id,就可以用了。此处,id转成int才能用,之前用string类型拿到,一直报错,很奇怪,没想通为什么。
(4) jsp页面给后台java函数传id就easy了。函数带参就ok。
感觉有点麻烦,但是可以实现。想着应该还有更好的方法去做。以后有空再研究。