JSTL is built into J2EE 1.4. A JSP that uses it references a set of formal URIs in the form:
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>
The Sun documentation (http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSTL3.html) notes:
“In the J2EE 1.4 Application Server, these are distributed in the archive <J2EE_HOME>/lib/appserv-jstl.jar. This library is automatically loaded into the classpath of all Web applications running on the J2EE application server, so it does not need be added to Web applications. ”
However, when the taglib statement is processed by 3.6.3 on 3.0 M4 it generates an error:
“could not load TLD for uri=http://java.sun.com/jsp/jstl/core, url=c:/workspace/yalecas/webhttp://java.sun.com/jsp/jstl/core”
It is necessary to recognize cannonical URIs and not go looking for the TLD. The TLD is implicit in the Classpath, not part of the project. Although this example compiles with errors, it deploys and runs correctly in Tomcat where the JSP compiler doesn’t try to find the TLD in the wrong place.
OS: Windows XP Pro, JDK: 1.4.2_02, fresh install for MyEclipse, Tomcat 4.1.24.