很奇怪的问题!我的开发环境和运行环境都是jdk1.5访问JSP时报错:The type List is not generic; it cannot be parameterized with arguments <PubTopicItemDO>JSP语句是:
List<PubTopicItemDO> topicItems = topicDO.getContentDO().getItems();
for (Iterator<PubTopicItemDO> it = topicItems.iterator(); it.hasNext();) {
PubTopicItemDO itemDO = (PubTopicItemDO) it.next();
....
}其中topicDO.getContentDO().getItems()定义如下:
public List<PubTopicItemDO> getItems() {
return new ArrayList<PubTopicItemDO>(itemList);
}这样怎么会提示泛型问题呢?后台程序运行一切正常,就是jsp编译出错!

解决方案 »

  1.   

    我估计你是用的java.awt.List; 而不是java.util.List; 
    你修改成java.util.List即可
      

  2.   

    不会犯这种错误的,JSP里都是<%@ page import="java.util.*" %>而且,其它不涉及泛型的地方都没有问题啊,如果我在接口定义中只写List不写List<...>,就没问题
      

  3.   

    那最大的可能性就是你Tocmat没有引用到正确的JDK 了.编译JSP时用的版本估计和你在后台测试的版本不一样吧.
      

  4.   

    这个也绝对是一致的。我在tomcat里setclasspath中设置的java_home就是我eclipse中编译时使用的jdk.而且这个应用启动后,除了JSP还有些程序在运行,在里面的泛型就一点儿问题都没有!只有在JSP中有问题
      

  5.   

    Tomcat所使用的版本低的话就不能用范型了。
      

  6.   

    我的tomcat是5.5的,不可以么?已经在tomcat下的web.xml中加入compilerSourceVM,compilerTargetVM了,不是不行
      

  7.   

    有人说是jspc不支持泛型,我在其它项目也没试过在jsp中写复杂的逻辑代码,不知道tomcat是否有支持泛型的版本?
      

  8.   

    topicDO.getContentDO().getItems(); 返回的是什么?List <PubTopicItemDO>?要么进行一下强制转换!
      

  9.   

    返回的就是List <PubTopicItemDO>用强制转换也不成
      

  10.   

    把 你的Tocmat 版本从5.5 提高到 5.5.26. 
      

  11.   

    tomcat5.0不支持泛型~不过5.5以上的版本就能支持了~
      

  12.   

    可能是 tomcat 的版本问题,楼主可以参考一下
    http://blog.csdn.net/thinkGhoster/archive/2007/11/09/1876667.aspx
      

  13.   

    为什么非得再jsp里面写java代码。这是个不好的习惯,最好写到类里面然后用标签显示。
      

  14.   

    如果你的jdk版本低了也不支持泛型,jdk要1.5以上,另外有一次同样的关于泛型的程序,我用jcreator报错,用eclipse正常,不知道编译器存不存在这样的问题,也可能是我弄错了
      

  15.   

    tomcat 5.5.26也试过了,结果一样!
      

  16.   

    怪的是,同一个tomcat,我放其它应用就可以使用泛型,就是这个应用不行这个应用也是用同一个JDK编译的啊,奇怪!