你修改完后,TestBean.class放在哪儿了?你应该把它放在class\com\jspdev目录下!

解决方案 »

  1.   

    明显是没找到类呀
    class="com.jspdev.ch3.TestBean“也要该为”com.jspdev.testBean
    同时要确保TestBean.class放在class\com\jspdev下面
      

  2.   

    恩~~~class就是指明类路径用的~
      

  3.   

    不好意思,我从来没碰到过这种情况,还有
    org.apache.jasper.JasperException: /register.jsp(2,0) The value for the useBean class attribute com.jspdev.TestBean is invalid.这个应该不是class not found错误吧
      

  4.   

    你要改变.class的位置,你就重新编译你的.java文件吧
      

  5.   

    .class文件里是指明了包名了的
    比如你的com.jspdev.ch3.TestBean
    实际上这个类名应该是“com.jspdev.ch3.TestBean”
    而不是“TestBean”
    除了在同一个包下,都要用“com.jspdev.ch3.TestBean”来引用的,
    你这样“擅自”把其.class文件改变位置是不行的,
    如果一定想用“com.jspdev.TestBean”来引用,
    必须把TestBean.java文件里的
    “package com.jspdev.ch3;”
    改为“package com.jspdev;”
    然后保存,重新编译TestBean.java
    这个时候,
    生成的类文件的目录结构就应该是“com/jspdev/TestBean.class”了,
    是不是?
    ================================================
    希望能帮助楼主以及一些初学JAVA的朋友一点忙,
    建议初学JAVA的朋友们到这里看看www.javaspace.net
    ================================================
      

  6.   

    各位仁兄,可能我有一点没说清楚
    当我把TestBean.java里的"package com.jspdev.ch3"改成了"package com.jspdev"后
    经过编译,然后把CLASS文件也放到了"com\jspdev"目录下
    然后再修改了jsp文件里的<jsp:usebean ... class ="..">
    但在执行JSP文件的时候提示我
    useBean class attribute com.jspdev.TestBean is invalid.但按"package com.jspdev.ch3;"这个结构做设置的时候,可以正常执行
      

  7.   

    你要先编译成class然后把com那个文件夹复制过去看看
      

  8.   

    楼主我认为,class="com.jspdev.ch3.TestBean"中的“com.jspdev.ch3”应该是你所建的javabean的包的名字,而“TestBean”为类的名字。并且应该把*.java和*.class文件放在与包名相同的文件夹内。如果改变名称,应该重新编译的。你试试吧。
      

  9.   

    各位高手们,帮帮忙了,我现在一遇到有BEAN的程序就用不了
    我从盘里考出来的例子就能运行
    我和那个例子一模一样就是不能运行
    拜托各位了
      

  10.   

    重新编译你的java文件,在WEN_INF\classes下,用这个命令:javac -d . TestBean.java然后在执行jsp页
      

  11.   

    补充一下,当你的java文件中含有package XXX语句时,通常将java文件放到相应目录的WEB_INF\classes下,然后在命令行中输入javac -d . filename.java进行编译,这样会自动生成对应的package目录结构,而不用手动建立package文件夹
      

  12.   

    看起来搂主也没什么地方做得不对,那就重启tomcat,删除缓存目录work吧!
      

  13.   

    其实楼上的已经说到了,我在解释下为什么需要重启或者删除缓存work
    首先应该知道,JSP不是直接执行的,是先由TOMCAT解释成servlet,保存在work\目录下,然后在被编译成.class字节码程序,最后有JVM来执行。
    当你改变了你的包路径之后,直接刷新页面,其实你运行的还是以前那个JSP的servlet,解决办法就如楼上的说的。
    这个问题在TOMCAT中比较常见,其他服务器一般不会有这个问题,直接刷新就可以重新解释JSP。