2016-11-17 112 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