这是class文件中的;目的是得到指定目录下的文件名,把文件名放入到一个数组里返回;package com.bean;import java.io.*;public class testBean {     public String[] file(){
      String srcDirectory = "c:\\hd";  //注释:在C盘目录hd下
 File srcDir = new File(srcDirectory);
       String fileList[] = srcDir.list();
String srcFileName;
         String  fName[]=new String[10];
    
for (int i = 0; i < fileList.length; i++) {
srcFileName = srcDirectory + "\\" + fileList[i];
    fName[i]=srcFileName.toString();
   
 }
           return fName;    //返回数组fName;
     }
}
main.jsp文件:目的就是把在testBean中得到文件名显示出来
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="com.bean.testBean"%><html>
<head>
<title>文件的读写</title>
</head> <body>

<form name="form1" method="get" action="testRead.jsp">
<%//读取文件内容 
//hd.result(); %>
<tr>
<td>
显示文件名:
</td>
</tr>
<tr>
<td>
<select>
<%testBean hd = new testBean();
String NM[]=hd.file();
for(int i=0;i<=NM.length;i++){
  
  %>
   <option>
   <%out.println(NM[i]);%>
   </option>    
<%}%>
                                           </select></form></body>
</html>
就是这样的 ,但是运行的时候却报错:
org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: in the jsp file: main.jsp
Tomcat 5.0\work\Catalina\localhost\first\org\apache\jsp\main_jsp.java:64: incompatible types
found   : void
required: java.lang.String[]
  String NM[]=hd.file(); 
1 error
            org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:128)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:413)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:437)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
哪位大虾,救救 我, 我很菜的,不知道是什么原因!

解决方案 »

  1.   

    Tomcat 5.0\work\Catalina\localhost\first\org\apache\jsp\main_jsp.java:64: incompatible 
    这句话指出你的tomcat下的work目录下面没有你的工程目录哦!
    所以你要重启一下tomcat试试
      

  2.   

    有啊 我去Tomcat 5.0\webapps\下去看了一下  有啊 而且JAVA文件都被编译成了CLASS文件了 
      

  3.   

    那你就删除那个文件再重启撒1
    原来的不要了哦!
    这个错误其实就是提示你找不到JSP文件哦1
    required: java.lang.String[]
      String NM[]=hd.file(); 
    1 error
    还有你的JSP里面这句话有出哦
    在编译的时候就出错了啊!
      

  4.   

    java文件:
    public  class testBean {    
    public  List fileN(){
          String srcDirectory = "c:\\file"; 
     File srcDir = new File(srcDirectory);
           String fileList[] = srcDir.list();
    String srcFileName;
          List  ss=new ArrayList();
    for (int i = 0; i < fileList.length; i++) {
    srcFileName = srcDirectory + "\\" + fileList[i];
          ss.add(srcFileName);
           }     
    return ss;  
         }
    }main.jsp文件:把JAVA文件里得到的ss数组的值显示到当前页面<form name="form1" method="get" action="testRead.jsp">
    <tr><td>
    显示数组的值:
    </td></tr>
    <tr><td>
    <select name="fileName">
                 <%testBean hd = new testBean();
                 List NM=hd.fileN();
                                   for(int i=0;i<=NM.size;i++){
    %>
                           <option>
       <%out.println(NM.get(i));%>
    </option>    
    <%}%>
    但是会出现这样的异常报告:
    Tomcat 5.0\work\Catalina\localhost\first\org\apache\jsp\test\mian_jsp.java:66: cannot resolve symbol
    symbol  : method fileN ()
    location: class com.bean.testBean
    List NM=hd.fileN(); 
                                                           ^
                                                             
    1 error真的搞不懂到底哪出什么错误了 ;