jsp从后台取得list,将list中的值循环存放到定义好的属性字段,该字段在前台放到bean write标签中显示,当list的长度很小几十个时,浏览器显示没有问题,当list的长度上千至4000时,在ie下浏览器死掉,在firefox下可正常显示。想问下这是什么原因?如何在ie下正常显示呢?//后台
private String sendToDepts;
public String getSendToDepts() {
return sendToDepts;
}
public void setSendToDepts(String sendToDepts) {
this.sendToDepts = sendToDepts;
}
List taskDpList = taskService.getTaskDeptByBH(task.getRwbh());
for(Iterator<T_RWGX> iterator = taskDpList.iterator(); iterator.hasNext();){
T_RWGX gx = (T_RWGX)iterator.next();
if(gx.getBmmc()!=null)
buffer.append(gx.getBmmc()+";");
}
sendToDepts = buffer.toString().substring(0,buffer.toString().length()-1);//前台
<bean:write name="taskBean" property="sendToDepts"/>

解决方案 »

  1.   

    前台死掉可能是浏览器溢出了。你看看别的地方。例如js什么的。顺手把你的bean write换成EL表达式看看${sendToDepts}
      

  2.   

    是不是涉及到了一个巨大的<table>ie就是这样子。因为他要计算整个<table></table>的位置,而里面内容太多,线程被完全占用,造成假死。你换div试试看?
      

  3.   

    我就是放到div里面的啊 代码: <td align="left" colspan="3">
     <div style="border-style:solid; border-width:1px; border-color:gray;height:auto;min-height:20px;width:700px;white-space:normal;overflow:auto;">        <bean:write name="taskBean" property="sendToDepts"/>
    </div>
    </td>
      

  4.   

    这list也太大了,即使能正常显示到页面让人怎么看呀,该考虑分页显示了。注:list太长容易很容易导致内存溢出问题,要避免。有可能你这次解决了IE显示问题,下次因为list太大服务器JVM溢出直接崩溃了。