2013-01-03 1 views
1

JSP에서 ArrayList의 내용을 출력하려고합니다.for 루프가 JSP에서 83 이후에 출력을 중지합니다.

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

%>'; 

아무것도 : 재미 것은 ArrayList의 크기가 내 자바 스크립트 함수에서이 첫 번째 시도했기 때문에 나는 문제를 우연히 2000입니다 그것은 인덱스 83 후 출력을 정지한다. 그래서 다음과 같이 테스트했습니다.

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()); 
} 

%>'; 

을 그리고 그것은 잘 작동하지만 (I 84, 아무것도로 변경하는 경우 즉,) 83이 되거하는 무정 후? 이것은 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 인 코멘트에서 언급 한) null입니다. 이 설정 ("+ classes)에서 문자열"null "이 출력에 추가됩니다.

+0

이것은 제가 지금까지 다루지 못한 가장 이상한 것입니다. 디버깅 할 때 arraylist의 모든 내용에 ClassInfo 값이 있음을 분명히 보여줍니다. 모든 제안을 해주셔서 감사 드리며, 문제를 파악하면 다시 돌아올 것입니다. –

+0

ClassInfo의 toString() 메서드가 예외를 throw 할 수있는 방법이 있습니까? – Friso

관련 문제