我有一个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控制器接收手机对象作为模型属性。 知道我哪里错了吗? 非常感谢。
答案 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");
}