正在维护一个以前的系统
很大。环境是myEclipse在jsp中有下面的代码, useBean中定义的是一个借口
Eclipse提示这样不行
(文件100%存在)<jsp:useBean id="xxx" scope="session" class="接口"/> 
可以这么用吗??因为这是作为基础对像用的帮帮我吧,谢谢了!!!

解决方案 »

  1.   

    应该可以吧
    不行就用import 
      

  2.   

    谢谢了已经import了因为是jsp的下面有用到 xxx 中的方法!!!!!
      

  3.   


    接口是不能被实例化的所以这也是我认为在jsp:useBean 中不能使用的原因但以前这个系统就是这样跑了4年!!
      

  4.   

    那是因为在session作用域下已经有 xxx 这个对象,没有的话也会报错
      

  5.   

    jsp:useBean  有两层意思,在作用域下有就使用,没有的话才创建,接口是不可实例化的,所以session作用域下已经有xxx
      

  6.   

    该标签执行时应先在指定的Session范围中找id指定的别名,如果找得到就不会创建实例。
      

  7.   

    路径绝对没有错误刚找到有的方法是传这个借口进去如下
    MCAG02DataBean dataBean = new MCAG02DataBean((MCZJspInterface)(this.session.getAttribute("JSPDataBeanId")));我上边所指的xxxx也就是"JSPDataBeanId"
      

  8.   

    这个不是很普通的javabean的用法么....
    最近也在高这些...烦躁...
      

  9.   

    session里面已经有一个id名字的对象了 所以不会去创建一个 只会去取出来用后面指定的class应该是取出对象之后强转类型了....Object obj=session.getA....(...);
    接口类型 a=(接口类型)obj;会生成这样的语句吧..楼主可以去看下它自动生成的源代码...
      

  10.   

    class里的一个接口倒是没尝试过
      

  11.   

    应该就是Session当中已经存在这个对象了,才可以这样用,否则不能使用接口,因为不能被实例化
      

  12.   

    在其他页面或者后台的某个程序已经设置了这个bean了
      

  13.   

    是不是环境的问题以前是jbulider4+jdk1.3是不是环境升级了
      

  14.   

    接口是不行的..接口不能new 出来的..他只能被特殊的方法实例化
      

  15.   

    我将class 改成type就可以了 
    1.Jsp页面从不创建对象。    
    servlet应该创建所有的对象。    
    因而为了保证Jsp页面不会创建对象,应该使用    
    <jsp:useBean ... type="package.class" />    
    代替    
    <jsp:useBean ... class="package.class" />    
       
    class="package.class"    
    使用new关键字以及class构造器从一个class中示例一个bean.这个class不能是抽象的,必须有一个公用的,没有参数的构造器.这个package的名字区别大小写。    
    type="package.class"    
    如果这个Bean已经在指定的范围中存在,那么写这个Bean一个新的数据库类型 。如果你没有使用class或beanName指定type,Bean将不会被示例.package和class的名字,区分大小写.  上边是从网上搜的