【发布时间】:2013-01-03 22:35:22
【问题描述】:
我正在尝试在 JSP 中输出 ArrayList 的内容。有趣的是,它在索引 83 之后停止输出。ArrayList 的大小是 2000。我偶然发现了这个问题,因为我首先在我的 javascript 函数中尝试了这个:
document.getElementById('test').innerHTML = '<%
for(ClassInfo classes: classList)
{
out.print(classes.toString());
}
%>';
什么都没有。所以我用这样的东西测试了它:
document.getElementById('test').innerHTML = '<%
for(int count = 0; count < classList.size(); count++)
{
out.print(classList.get(count).toString());
}
%>';
还是什么都没有。所以我对其进行了调整,只是想看看我能不能得到任何东西:
document.getElementById('test').innerHTML = '<%
for(int count = 0; count < 83; count++)
{
out.print(classList.get(count).toString());
}
%>';
它工作得很好,但在 83 之后就不行了。(即,如果我将其更改为 84,则什么都没有)想了解一下吗?这是我使用 JSP 的第一天,似乎很多人都使用 JSTL 来处理这类事情,据我了解,Tomcat v7 并没有打包。
【问题讨论】:
-
我会调整一些以确保它不是逻辑问题,只需打印计数并将循环更改为 85。out.print(count);
-
查看
out.print(classList.size())打印的内容。 -
@Eng.Fouad 它打印出 2000 年。
-
@J-MANMORGAN:这告诉您 arrayList 中只有 82 个值,其余元素是空字符串(甚至不是 nulls(。只是为了在打印之前证明点,添加可能是 101,102,103 等,你会在 out.print 中看到它们
-
您究竟是如何观察“它停止输出”的?您是直接查看生成的 HTML 输出(浏览器中的右键单击页面,查看源代码)中的特定 JavaScript 代码,还是根据执行的 JavaScript 代码的预期行为观察到这一点? (因此您以最终用户而不是开发人员的身份观察到)例如,原因可能只是第 84 项的打印值中的单引号(导致 JS 语法错误),因此所有这些项在生成的 HTML 输出。