You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-user@tomcat.apache.org by Anthony Smith <an...@fedex.com> on 2004/01/15 17:46:00 UTC
Loop Tags
I am fairly new to taglibs...
However as I start to create more jsps. I have decided to take advantage for
tags for better MVC compilancy and code re-use. I looked through the
standard tags, but did not see what I was looking for.
I am looking for tags that I can use for things like for loops and such.
Instead of doing things like:
<select name="stationId">
<option value="">Select a Station ID</option>
<%
for( int i = 0; i < locations.length; i++ )
{
%>
<option
value="<%=locations[i].value()%>"><%=locations[i].value()%></option>
<%
}
%>
</select>
Cleaning that code up even more where my for loop is in a tag. Where can I
find such a tag?
RE: Loop Tags
Posted by Kris Schneider <kr...@dotech.com>.
Ensure you're using a JSP 1.2 container, like Tomcat 4.1.
Remove the JSTL TLD files, they're already packaged within standard.jar.
Remove any JSTL <taglib> entries from web.xml.
Use the following directive in your JSP:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
Quoting Anthony Smith <an...@fedex.com>:
>
> Ok. I do not know what I am doing. I get errors like these from the c.tld
> that I copied exactly from the taglib standard tld folder.
>
> org.apache.jasper.JasperException: XML parsing error on file
> /WEB-INF/templates/jsp/tld/c.tld: (line 6, col 19): Document root element
> "taglib", must match DOCTYPE root "null".
> at
> org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:18
> 9)
> at
> org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.ja
> va:247)
> at
> org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:183)
> at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:354)
> at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:381)
> at org.apache.jasper.compiler.Parser.parseElements(Parser.java:799)
> at org.apache.jasper.compiler.Parser.parse(Parser.java:122)
> at
> org.apache.jasper.compiler.ParserController.parse(ParserController.java:199)
> at
> org.apache.jasper.compiler.ParserController.parse(ParserController.java:153)
> at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:219)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
> at
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:4
> 74)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:1
> 84)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:247)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:260)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:191)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
> )
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
> java:170)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:641)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
> )
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:641)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :174)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
> eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
> ction(Http11Protocol.java:380)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
> a:533)
> at java.lang.Thread.run(Thread.java:539)
>
>
>
>
> -----Original Message-----
> From: Serge Knystautas [mailto:sergek@lokitech.com]
> Sent: Thursday, January 15, 2004 11:02 AM
> To: Tag Libraries Users List
> Subject: Re: Loop Tags
> Anthony Smith wrote:
> > I am fairly new to taglibs...
> >
> > However as I start to create more jsps. I have decided to take advantage
> for
> > tags for better MVC compilancy and code re-use. I looked through the
> > standard tags, but did not see what I was looking for.
> > I am looking for tags that I can use for things like for loops and such.
> > Instead of doing things like:
> > <select name="stationId">
> > <option value="">Select a Station ID</option>
> > <%
> > for( int i = 0; i < locations.length; i++ )
> > {
> > %>
> > <option
> > value="<%=locations[i].value()%>"><%=locations[i].value()%></option>
> > <%
> > }
> > %>
> > </select>
> >
> > Cleaning that code up even more where my for loop is in a tag. Where can
> I
> > find such a tag?
>
> --
> Serge Knystautas
> President
> Lokitech >> software . strategy . design >> http://www.lokitech.com
> p. 301.656.5501
> e. sergek@lokitech.com
--
Kris Schneider <ma...@dotech.com>
D.O.Tech <http://www.dotech.com/>
---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org
RE: Loop Tags
Posted by Anthony Smith <an...@fedex.com>.
Ok. I do not know what I am doing. I get errors like these from the c.tld
that I copied exactly from the taglib standard tld folder.
org.apache.jasper.JasperException: XML parsing error on file
/WEB-INF/templates/jsp/tld/c.tld: (line 6, col 19): Document root element
"taglib", must match DOCTYPE root "null".
at
org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:18
9)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.ja
va:247)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:183)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:354)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:381)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:799)
at org.apache.jasper.compiler.Parser.parse(Parser.java:122)
at
org.apache.jasper.compiler.ParserController.parse(ParserController.java:199)
at
org.apache.jasper.compiler.ParserController.parse(ParserController.java:153)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:219)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:4
74)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:1
84)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:380)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:533)
at java.lang.Thread.run(Thread.java:539)
-----Original Message-----
From: Serge Knystautas [mailto:sergek@lokitech.com]
Sent: Thursday, January 15, 2004 11:02 AM
To: Tag Libraries Users List
Subject: Re: Loop Tags
Anthony Smith wrote:
> I am fairly new to taglibs...
>
> However as I start to create more jsps. I have decided to take advantage
for
> tags for better MVC compilancy and code re-use. I looked through the
> standard tags, but did not see what I was looking for.
> I am looking for tags that I can use for things like for loops and such.
> Instead of doing things like:
> <select name="stationId">
> <option value="">Select a Station ID</option>
> <%
> for( int i = 0; i < locations.length; i++ )
> {
> %>
> <option
> value="<%=locations[i].value()%>"><%=locations[i].value()%></option>
> <%
> }
> %>
> </select>
>
> Cleaning that code up even more where my for loop is in a tag. Where can I
> find such a tag?
--
Serge Knystautas
President
Lokitech >> software . strategy . design >> http://www.lokitech.com
p. 301.656.5501
e. sergek@lokitech.com
---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org
Re: Loop Tags
Posted by Serge Knystautas <se...@lokitech.com>.
Standard taglib has <c:forEach>.
Anthony Smith wrote:
> I am fairly new to taglibs...
>
> However as I start to create more jsps. I have decided to take advantage for
> tags for better MVC compilancy and code re-use. I looked through the
> standard tags, but did not see what I was looking for.
> I am looking for tags that I can use for things like for loops and such.
> Instead of doing things like:
> <select name="stationId">
> <option value="">Select a Station ID</option>
> <%
> for( int i = 0; i < locations.length; i++ )
> {
> %>
> <option
> value="<%=locations[i].value()%>"><%=locations[i].value()%></option>
> <%
> }
> %>
> </select>
>
> Cleaning that code up even more where my for loop is in a tag. Where can I
> find such a tag?
--
Serge Knystautas
President
Lokitech >> software . strategy . design >> http://www.lokitech.com
p. 301.656.5501
e. sergek@lokitech.com
---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org