写了一个JSP程序但有错误:An error occurred at line: 29

这个程序是统计C盘下的所有文件和子文件夹,统计数目
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.io.*"%>
<HTML>
<BODY ><FONT Size=2>
<%
File dir=new File("c:/");
File file[]=dir.listFiles();
%>

<BR>目录列表:
<%
for(int i=0;i<file.length;i++)
{
if (file[i].isDirectory())
out.print("<BR>"+file[i].
toString());
}
%>

<P>文件列表:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isFile())
out.print("<BR>"+file[i].toString());

}
out.print("<BR>"+file.length());
%>
</FONT>
</BODY>
</HTML>

在Tomcat里跑了一下返回错误,提示:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 29 in the jsp file: /file2.jsp
Cannot invoke length() on the array type File[]
26: out.print("<BR>"+file[i].toString());
27:
28: }
29: out.print("<BR>"+file.length());
30: %>
31:
32: </FONT>

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs.

希望高人帮忙看一下,希望能给出修正过的完整的代码,谢谢

很明显是29处的length()方法错了,原因在于:
file是个数组的名称,它的长度不能方法,而是做为数组的一个属性故,应该改成
file.length就可以了。~
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-30
out.print("<BR>"+file.length());
改成
out.print("<BR>"+file.length);追问

谢谢,我明白了,

本回答被提问者和网友采纳

写了一个JSP程序但有错误:An error occurred at line: 29
很明显是29处的length()方法错了,原因在于:file是个数组的名称,它的长度不能方法,而是做为数组的一个属性故,应该改成 file.length就可以了。~

...jasper.JasperException: Unable to compile class for JSP...
Unable to compile class for JSP 不能为JSP编译class文件,检测java环境是否配置正确,尤其是WEB服务器的java运行环境配置。

...An error occurred at line: 31 in the jsp file: \/StuMS\/WebRoot\/...
Dbconn类所在的包没有导入。

...这个错误怎么回事“An error occurred at line: 23 in the generat...
你的DBconnection类里的数据库连接池代码部分的错误,错误是连接超时,你应该是用的读取properties文件来获得连接的吧,给你一个我写的DBconnection连接类参考 public class DBUtil { private static DataSource dataSource;private DBUtil() { } static{ try { \/\/加载配置文件后初始化连接的地址和用户...

An exception occurred processing JSP page \/dolog.jsp at line 29...
不要只看页面的提示,最好是看tomcat控制台或log的提示,更全一些。估计是你的mysql的jdbc驱动的jar没有导入成功造成的,你一定要把这个文件拷贝到WEB-INF\/lib目录下,只放到工程的build path下是不行的。另外,像楼上说的,sql语句也有问题。

Unable to compile class for JSP是什么错误,麻烦各位高手,看看呗...
jsp页面有错误,不能编译。具体错误详见:An error occurred at line: 102 in the jsp file: \/index.jsp

jsp的HTTP Status 500 - Unable to compile class for JSP
你的jsp 有错误啊 不能通过编译...

An error occurred at line: 173 in the generated java file
应该是你的jsp页面里面的java代码段没有正常的结束,就是缺少了 } 这个结尾符号,比如三层的for循环你只有两个 } 就错了呗.

启动jsp程序后页面出现下述错误,怎么回事?
该错误是个类型转换异常,您可以检查一下您的request.getParameter("report_id")是字母,还是数字,如果是字母或特殊字符的话,在转换成int的时候,肯定出错。

JSP文件第一行的错误
JSP文件第一行报错,解决方案如下:1、检查是否有的自动验证;2、把页面关闭,重新打开看看;3、把myeclipse关了,再重新打开试试;注意:myeclipse有时也有bug,所以会造成这种问题。

相似回答