1

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 を使用しているようです。

4

1 に答える 1

0

多分あなたは交換してみることができます

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

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

これは非常に非効率的ですが(ブラウザでのリフローが多く、テストを何度も検索する)、デバッグに役立つ場合があります。私の推測では(コメントで述べたように)、ArrayListの要素はnullです。この設定( "" + classes)では、文字列"null"が出力に追加されます。

于 2013-01-04T09:10:16.960 に答える