详细的说一下
一个简单的类Student如下:
public class Student {

public int id=10;

public Student(){
id+=1;
}

public int getId(){
return id;
}

public void setId(int newID){
id=newID;
}

public void IdChange(){
id+=1;
}}
我把这个类放在路径:D:\jakarta-tomcat-5.0.28\webapps\Test\WEB-INF\classes(没有用包)
JSP页面相关部分是这样的:
<%@ page import="Student"%>
<jsp:useBean class="Student" id="student" scope="page"  ></jsp:useBean>
<jsp:getProperty  name="student" property="id"></jsp:getProperty>
<%=student.getId()%>
在tomcat下也没有编译错误,但页面没有任何显示。为什么呢?
如果放在root路径下,页面有错误。显示信息如下:
D:\jakarta-tomcat-5.0.28\work\Catalina\localhost\_\org\apache\jsp\Untitled_002d1_jsp.java:7: '.' expected
import Student;
              ^
1 error
非常感谢你们的帮助!!!

解决方案 »

  1.   

    在你Bean第一句加上package Student;
      

  2.   

    JSP 使用的 bean 必须在包中。为什么呢?因为 JSP 是要在运行时被编译成 Servlet 的,被编译的后果是不同的应用服务器可能对该 Servlet 使用不同的包名。这样,这个被编译出来的 Servlet 就完全可能与你的不使用包的类不在同一个包中。如 Tomcat 下 JSP 被编译后的包是 package org.apache.jsp;,在这个包中怎么能够访问你不使用包的 bean 呢?!:)
      

  3.   

    还是不行呀,已经改了:
    Bean第一句加上了package Student,编译后的class放在D:\jakarta-tomcat-5.0.28\webapps\Test\WEB-INF\classes\Student中
    JSP相关内容是:
    <%@ page import="Student.*"%>
    <jsp:useBean class="Student" id="student" scope="page"  ></jsp:useBean>
    <jsp:getProperty  name="student" property="id"></jsp:getProperty>
    <%=student.getId()%>
    在tomcat下没有编译错误,但页面还是没有任何显示。为什么呢,郁闷
      

  4.   

    借机会问一下 useBean  怎么使用??。。
      

  5.   

    你请求的路径,比如:http://community.csdn.net/Expert/topic/4308/4308612.xml?temp=.265362
      

  6.   

    我按照楼上的例子做的 但是现在不好用啊 我在我的
    C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\ROOT下面建立了一个TEMP文件夹 然后我把一个java 和一个jsp 放进里面 但是我运行Tomcat http://localhost:8080/temp/a.jsp 但是显示错误!
      

  7.   

    public Student(){
    id+=1;
    }这个+=的+号不对吧?
      

  8.   

    webapps\Test\
    你不是放到Test 下面么?怎么到temp了?
    http://localhost:8080/Test/a.jsp
      

  9.   

    我在我的Tomcat没有找到  自己建立一个吗??
      

  10.   

    如果是在root的temp下面的话,类文件要放到root的web-inf的classes里面,你怎么到处放阿?另外,好像5.0的tomcat要用高版本的jdk,用jdk1.5试试
      

  11.   

    下面引用   netstu(孤心) ( ) 信誉:99    的话:
    ===========================
    public Student(){
    id+=1;
    }这个+=的+号不对吧?
    ===========================楼主你用bean的时候只写.java文件不编译的吗?直接性编译都不能通过,哪来的结果?
    我特意拿你的例子在我这试了一下,在打包后,改了+号后就有结果,页面打印2个11