for循环不在javascript

时间:2016-11-17 22:00:05

标签: javascript spring jsp for-loop iteration

我有一个User类型的arraylist,它看起来像:

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和user.firstname。 但是,当我这样做时,我得到的第一条记录打印了两次:

 {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");
            }
        }

请注意,我从spring控制器接收手机对象作为模型属性。 知道我哪里错了吗? 非常感谢。

2 个答案:

答案 0 :(得分:0)

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

代码:

<c:forEach items="${phone.userList}" var="phoneuserobj">
        <tr>
            <td>${phoneuserobj.id}</td>
            <td>${phoneuserobj.firstname}</td>
        </tr>
    </c:forEach>

答案 1 :(得分: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");
        }