2016-11-17 126 views
0

我有一个类型用户的ArrayList看起来像:For循环不遍历数组列表中的JavaScript

console.log([User [id=1, firstName= Sagar, lastName= Dafle, address= Address street 33 S, 3rd street, city San Jose, state California, zip 95113, title= Software Engineer], User [id=2, firstName= Vikas, lastName= Dafle, address= Address street 33 S, 3rd street, city San Jose, state California, zip 95113, title= MBA]]); 

现在,我想遍历大小为2的列表和打印user.id和用户。名字 。 然而,当我这样做,我得到的两次打印的第一个记录:

{1,Sagar} {1,Sagar} 

注意预期的输出结果是:

{1,Sagar} {2,Vikas} 

我的循环遍历列表:

userlistlength = ${phone.userList.size()}; 
     //console.log(${phone.userList}); 
     console.log("userlistlength "+userlistlength); //prints 2 

     if(userlistlength>0){ 
      document.write("User List:     \n"); 

      for(var counter = 0; counter < userlistlength ; counter++){ 
       console.log("Counter "+counter); //prints 0 and 1 
       id = '${phone.userList.get(counter).id}'; 
       firstname = '${phone.userList.get(counter).firstname}'; 
       document.write("{"+id+","+firstname+"}\n"); 
       document.write("\n"); 
      } 
     } 

请注意,我从我的弹簧控制器接收电话对象作为模型属性。 任何想法我哪里错了? 非常感谢。

+0

什么是'$ {}'?某种服务器端模板语言?如果是的话,你不能把它和JS混合在一起 - 你''counter'在'userList.get(counter)'中不是你想象的那样(而是默认为'0')。 – Bergi

+0

显示get函数,这似乎是它可能出错的地方。正如@Bergi提到的,​​你确定你不想在这里显示反编码(例如'') – Icepickle

+0

我正在使用spring mvc。我使用$符号来访问我通过控制器操作传递的电话属性。有任何其他方式可以访问吗?不是上面的代码是我的JSP页面脚本标记的一部分 –

回答

0

正如@Bergi建议的, 在JSP页面中使用脚本标记是一种不好的做法。 我改用JSP forEach循环,它工作。

代码:

<c:forEach items="${phone.userList}" var="phoneuserobj"> 
     <tr> 
      <td>${phoneuserobj.id}</td> 
      <td>${phoneuserobj.firstname}</td> 
     </tr> 
    </c:forEach> 
0
for(var counter = 0; counter < userlistlength ; counter++){ 
      console.log("Counter "+counter); //prints 0 and 1 
      id = '${phone.userList.get(counter+1).id}'; 
      firstname = '${phone.userList.get(counter+1).firstname}'; 
      document.write("{"+id+","+firstname+"}\n"); 
      document.write("\n"); 
     } 
+0

www.nexttutorial.com – user3024334

+0

http://www.nexttutorial.com/ – user3024334