各位高手,本人刚学习jsp,遇到个问题,困扰很久,望能帮我解惑下,不甚感谢下面是实现一个可以通过表单提交的后缀名列举出所有该后缀的文件,程序如下:创建bean的java源文件ListFile.java
package tom.jiafei;
import java.io.*;
class FileName implements FilenameFilter 
{
String str=null;
   FileName (String s)
   { str="."+s;
   }
   public  boolean accept(File dir,String name)
   { return name.endsWith(str);
   }              
}public class ListFile
{  
   String extendsName=null;
   StringBuffer allFileName = new StringBuffer(); 
   public void setExtendsName(String s)
   { extendsName=s;
   }
   public String getExtendsName()
   { return extendsName;
   }
  public StringBuffer getAllFileName()
  {  File dir=new File("D:/");
     FileName help=new FileName(extendsName);
     String file_name[]=dir.list(help);
     for(int i=0;i<file_name.length;i++)
     {  allFileName.append(file_name[i]+" ");
     }
     return allFileName;
  }  
}编译后我将ListFile.class和FileName.class都放到了“web服务目录\ch4\WEB-INF\classes\tom\jiafei”下使用bean的jsp源文件file.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<%@ page import="tom.jiafei.*"%> 
<jsp:useBean id="file" class="tom.jiafei.ListFile" scope="page"/>
<HTML><BODY bgcolor=cyan><Font size=2>
<FORM action="" Method="post">
  输入文件的扩展名:<Input type=text name="extendsName">
  <Input type=submit value="提交">
</FORM>
  <jsp:setProperty name="file" property="extendsName" param="extendsName"/>
  <P>扩展名是 <jsp:getProperty name="file" property="extendsName"/> 的文件有:
  <BR><jsp:getProperty name="file" property="allFileName"/>
</BODY></HTML>当我运行时报错如下(若我屏蔽掉红色部分则不会报错):
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /file.jsp at line 118: </FORM>
9:   <jsp:setProperty name="file" property="extendsName" param="extendsName"/>
10:   <P>扩展名是 <jsp:getProperty name="file" property="extendsName"/> 的文件有:
11:   <BR><jsp:getProperty name="file" property="allFileName"/>
12: </BODY></HTML>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: java.lang.NoClassDefFoundError: tom/jiafei/FileName
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.file_jsp._jspService(file_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NoClassDefFoundError: tom/jiafei/FileName
tom.jiafei.ListFile.getAllFileName(ListFile.java:25)
org.apache.jsp.file_jsp._jspService(file_jsp.java:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.

解决方案 »

  1.   

    javax.servlet.ServletException: java.lang.NoClassDefFoundError: tom/jiafei/FileName检查你的FileName.class的位置WEB-INF\tom\jiafei\下面有没有整个文件?
      

  2.   


    有FileName.class的,所以我很奇怪,这个问题困扰我很久了
      

  3.   

    类型错误
    StringBuffer allFileName = new StringBuffer();  
    allFileName改成string类型
      

  4.   


    结贴前还想问下,是否是必须返回给页面只能是String类型的吗?为什么会报错呢