请问如何在js中遍历jsp页面里的java代码(如List<xxx>),程序代码如下
<%List<Treebean>list2=newArrayList<Treebean>();Treebeantb=newTreebean();TreeInfoti=ne...
<%
List <Treebean> list2 = new ArrayList<Treebean>();
Treebean tb = new Treebean();
TreeInfo ti = new TreeInfo();
list2=ti.getTree();
//怎么把list在js中遍历并取值呢??
%>
<script type="text/javascript">
d = new dtree('d');
d.add()
d.add(0,-1,'审计系统');
d.add(1,0,'项目第一部分');
d.add(2,1,'信息添加','index.jsp');
d.add(3,1,'信息查询','index.jsp');
</script>
我想把LIST2这个集合在js中 for循环{d.add(list2.get(i).getId(), list2.get(i).getparentId()....)}这样
最后问一下 d = new dTree('d'); 这里面‘d’ 是定义什么东西啊 为啥我这说 ‘d’ 未定义 ,后来看他说是‘dtree’未定义????
代码如下
<div class="dtree">
<p><a href="javascript: d.openAll();">全部展开</a> | <a href="javascript: d.closeAll();">全部收缩</a></p>
<script type="text/javascript">
d = new dtree('d');
<%
int size = list2.size();
for(int i=0;i<size;i++){%>
tb=list2.get(i);
d.add(<%=tb.getId()%>,<%=tb.getPid()%>,'<%=tb.getName()%>','<%=tb.getUrl()%>');
<% }%>
document.write(d);
</script>
</div> 展开
List <Treebean> list2 = new ArrayList<Treebean>();
Treebean tb = new Treebean();
TreeInfo ti = new TreeInfo();
list2=ti.getTree();
//怎么把list在js中遍历并取值呢??
%>
<script type="text/javascript">
d = new dtree('d');
d.add()
d.add(0,-1,'审计系统');
d.add(1,0,'项目第一部分');
d.add(2,1,'信息添加','index.jsp');
d.add(3,1,'信息查询','index.jsp');
</script>
我想把LIST2这个集合在js中 for循环{d.add(list2.get(i).getId(), list2.get(i).getparentId()....)}这样
最后问一下 d = new dTree('d'); 这里面‘d’ 是定义什么东西啊 为啥我这说 ‘d’ 未定义 ,后来看他说是‘dtree’未定义????
代码如下
<div class="dtree">
<p><a href="javascript: d.openAll();">全部展开</a> | <a href="javascript: d.closeAll();">全部收缩</a></p>
<script type="text/javascript">
d = new dtree('d');
<%
int size = list2.size();
for(int i=0;i<size;i++){%>
tb=list2.get(i);
d.add(<%=tb.getId()%>,<%=tb.getPid()%>,'<%=tb.getName()%>','<%=tb.getUrl()%>');
<% }%>
document.write(d);
</script>
</div> 展开
4个回答
展开全部
js肯定是不能直接操作java的list啊,你可以把list循环成一个json格式的字符串如:
String str="";
for(int i=0;i<list2.size();i++){
str+=("{id:'"+list2.get(i).getId()+"',pid:'"+list2.get(i).getparentId()+"'},");
}
if(str.length()>0){
str="["+str.substring(0,str.length()-1)+"]";
}
然后js里面这样var list='<%=str %>';
list=new Function("return "+ list)();
这样后list就是个和java中list差不多的对象数组了
list[i].id等价于java的list2.get(i).getId()
String str="";
for(int i=0;i<list2.size();i++){
str+=("{id:'"+list2.get(i).getId()+"',pid:'"+list2.get(i).getparentId()+"'},");
}
if(str.length()>0){
str="["+str.substring(0,str.length()-1)+"]";
}
然后js里面这样var list='<%=str %>';
list=new Function("return "+ list)();
这样后list就是个和java中list差不多的对象数组了
list[i].id等价于java的list2.get(i).getId()
追问
这个貌似可行 ,我先试试看,不过代码看不太懂。。。
展开全部
<script>
var d = new dtree('d');
<%
int size = list2.size();
for(int i=0;i<size;i++){%>
d.add(<%=list2.get(i).getId()%>,<%=list2.get(i).getparentId()%>,'<%=list2.get(i).getUrl()%>');
<% }%>
</script>
var d = new dtree('d');
<%
int size = list2.size();
for(int i=0;i<size;i++){%>
d.add(<%=list2.get(i).getId()%>,<%=list2.get(i).getparentId()%>,'<%=list2.get(i).getUrl()%>');
<% }%>
</script>
追问
你确定???????????????????????
追答
你不试试?这个能用。
_______________________
我猜应该是一个标签的id,你在你的页面里加个id为"d"的标签,先试试div,不行再换个ul。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用<%=变量 %>,看下面例子就可以用js得到java的值:
<script type="text/javascript">
function testJS()
{
var c='<%=path %>'; // var c='<%=list2.get(i).getId() %>';等等
alert(c);
}
</script>
<%=path %>中的path可以换成你要的值,自己尝试写下吧,这样才能记得牢
根据代码d = new dtree('d');这句需要改成var d = new dtree('d');
<script type="text/javascript">
function testJS()
{
var c='<%=path %>'; // var c='<%=list2.get(i).getId() %>';等等
alert(c);
}
</script>
<%=path %>中的path可以换成你要的值,自己尝试写下吧,这样才能记得牢
根据代码d = new dtree('d');这句需要改成var d = new dtree('d');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按目前有 dwr js中直接可以使用后台定义的java类
直接可以传list去js里遍历
或者就是通过Ajax 通过数据封装获取
Ajax 有6种返回值 json text html script jsonp 还有一种 你的list 最好用 json返回类型
或者你就只有通过jsp的java代码 写到html元素上 然后用js取dom元素值
直接可以传list去js里遍历
或者就是通过Ajax 通过数据封装获取
Ajax 有6种返回值 json text html script jsonp 还有一种 你的list 最好用 json返回类型
或者你就只有通过jsp的java代码 写到html元素上 然后用js取dom元素值
追问
谢谢,不过首先我不懂ajax,而且dom也不懂,最好是有实例说明 (代码)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询