2013-01-03 58 views
1

我想輸出一個ArrayList在JSP中的內容。有趣的是,它的索引83後停止輸出的ArrayList的大小爲2000我在這個問題迷迷糊糊,因爲我試過這首在我的javascript函數:for循環停止輸出JSP中的83後

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中。

+0

我會調整一些,以確保它不是邏輯問題,只需打印計數並將循環更改爲85. out.print(count); – kosa

+0

查看'out.print(classList.size())'輸出的內容。 –

+0

@ Eng.Fouad它打印出2000. –

回答

0

也許你可以嘗試用

document.getElementById('test').innerHTML = ''; 
<% for (ClassInfo classes : classList) { %> 
document.getElementById('test').innerHTML += '<%= ""+classes %> '; 
<% } %> 

更換

document.getElementById('test').innerHTML = '<% 
for(ClassInfo classes: classList) 
{ 
    out.print(classes.toString()); 
} 
%>'; 

雖然這是非常低效的(大量回流的瀏覽器,測試查找很多次),它可能會在調試幫助。我的猜測是(如評論中所述)ArrayList中的元素爲空。在此設置(「」+類)中,字符串「null」將被附加到輸出。

+0

這是我曾經處理過的最奇怪的事情。當我調試時,它清楚地表明,數組列表中的所有內容都具有ClassInfo值。感謝所有的建議,當我找出問題時我會回來。 –

+0

有什麼辦法的ClassInfo的toString()方法可能會拋出異常? – Friso