August 3, 2009

JSP: cannot be resolved or is not a type

Topic:  JSP 2.0

Application Server: JBoss 4.0.2 / Tomcat 5.5.9

Exception:

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

An error occurred at line: 7 in the jsp file: /Test.jsp
Generated servlet error:
ArrayList cannot be resolved or is not a type

An error occurred at line: 7 in the jsp file: /Test.jsp
Generated servlet error:
ArrayList cannot be resolved or is not a type


	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)

Resolution:

Just as in a normal Java Class, any collaborative classes (or dependencies) are required to be imported with the import statement above the class declaration, dependencies should be imported in the JSP as well.

The JSP page directive’s import attribute is used to import dependent packages/classes. Unlike in a Java Class where there can be multiple import statements, multiple dependencies in the JSP are indicated by separating them with commas as follows:

<%@ page import="java.util.ArrayList,java.io.*" %>

By convention, page directives are placed at the top of the JSP file, but they can be located anywhere within the page.

No comments:

Post a Comment