In my standard.jar there is a c.tld, which has these initial lines:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>JSTL 1.1 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>
http://java.sun.com/jsp/jstl/core</uri>
That is where I get the "2.0" from.
My web.xml begins with:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts-enabled WebStar</display-name>
and it doesn't contain any definition for "core" or "c.tld".
There is no "c*.tld" in my WEB-INF directory.
***
The web.xml contains a definition for my extension of the forEach tag. In web.xml is this definition:
<taglib>
<taglib-uri>/tags/halo</taglib-uri>
<taglib-location>/WEB-INF/halo.tld</taglib-location>
</taglib>
Which was:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.0</jsp-version>
<short-name>halo</short-name>
<uri>
http://halo.com</uri>
<display-name>Halo library</display-name>
<description>Halo library</description>
<tag>
<name>forEachCycle</name>
<tag-class>com.halo.portal.struts.ForEachCycleTag</tag-class>
<tei-class>com.halo.portal.struts.ForEachCycleTei</tei-class>
combined with this version of the ForEachCycleTag class:
import org.apache.taglibs.standard.tag.el.core.ForEachTag;
public class ForEachCycleTag extends ForEachTag {
I *did* try this version of halo.tld:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.0</jsp-version>
<short-name>halo</short-name>
<uri>
http://halo.com</uri>
<display-name>Halo library</display-name>
<description>Halo library</description>
<tag>
<name>forEachCycle</name>
<tag-class>com.halo.portal.struts.ForEachCycleTag</tag-class>
<tei-class>com.halo.portal.struts.ForEachCycleTei</tei-class>
combined with this version of the ForEachCycleTag class:
import org.apache.taglibs.standard.tag.rt.core.ForEachTag;
public class ForEachCycleTag extends ForEachTag {
***
The quoteSearch.jsp file contains this declaration:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
***
With all of these versions (except for the original version which works, but not through NetBeans) I get the exception:
javax.servlet.jsp.el.ELException: Unable to find a value for "quoteStatus" in object of class "java.lang.String" using operator "."
To repeat a bit of evidence, when I use the "rt" library the function proprietaryEvaluate() gets called and I get the exception. With the "el" library I get where I want to go.
So that should address the questions about "JSTL 2.0" and whether my extension to the forEach tag is using the correct EL or RT declaration.
I'm thinking that my c.tld isn't a problem here, but rather my extension to forEach tag.