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