• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

Custom Tags - Repeating Tags

 
Ranch Hand
Posts: 58
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi .
I am so intrigued :eek by this behaviour . Obviously I am missing something .
When repeating tags ina JSP page why does it process only once .
To make my self clear
//*********************************************
<%@ taglib uri="/WEB-INF/tlds/hello.tld"
prefix="test" %>
<HTML>
<HEAD>
<TITLE>Hello Tag</TITLE>
</HEAD>
<BODY bgcolor="#ffffcc">
<test:hello />
<test:hello />
<test:hello />
</BODY>
</HTML>
only prints the output one and behaves just the same as
<%@ taglib uri="/WEB-INF/tlds/hello.tld"
prefix="test" %>
<HTML>
<HEAD>
<TITLE>Hello Tag</TITLE>
</HEAD>
<BODY bgcolor="#ffffcc">
<test:hello />
</BODY>
</HTML>
//*******************************************
This is not the case for looping body Tags
can any one explain Why
Thanks and Regards
Lakshmi

 
sharp shooter, and author
Posts: 1913
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm not quite sure what's happening here ... are you returning SKIP_PAGE from your doEndTag method?
Simon
------------------
Simon Brown
Co-author of Professional JSP 2nd Edition
 
Lakshmi Anantharaman
Ranch Hand
Posts: 58
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the response ,
Yes , I do have doEndTag() returning SKIP_PAGE !
I am able to reproduce this behaviour in many simple tags that I created .
If I have the tags repeated in my JSP page it is processed only once .
 
Simon Brown
sharp shooter, and author
Posts: 1913
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Lakshmi,
There are two valid return values for doEndTag - SKIP_PAGE and EVAL_PAGE.
(1) SKIP_PAGE tells the JSP to skip (ignore) the rest of the page entirely. This is what is happening here - in other words nothing after the first tag is being processed.
(2) EVAL_PAGE tells the JSP to carry on processing the page. This is the usual return value for the majority of the tags that we write.
Changing the doEndTag to return EVAL_PAGE will fix your problems.
Hope that helps...
Simon
------------------
Simon Brown
Co-author of Professional JSP 2nd Edition
 
Lakshmi Anantharaman
Ranch Hand
Posts: 58
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
All my doEndTag() for simple tags ( other than the iteration tags with Body) did return SKIP_PAGE. But changing them to EVAL_PAGE (sounded like what was wrong ) did not help me.
My TagHandler Class looks like this .
/******************************************************
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class HelloTagSupport extends TagSupport {
private String name;
public void setName(String name)
{
this.name=name;
}
public int doStartTag() throws JspException {
try {
pageContext.getOut().println(" Using the Tag Support Interface "+name);

} catch (IOException ioe) {
throw new JspException("Error: IOException while writing to client" + ioe.getMessage());
}
return SKIP_BODY;
}
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
}
********************************************/
In my tag library descriptor(hello.tld) I have a list of tags. Is this something wrong ?
My Tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">;
<!-- a tag library descriptor -->
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>first</shortname>
<uri></uri>
<info>A simple tab library for the
examples</info>
<tag>
<name>hello</name>
<tagclass>com.adspedia.gui.framework.tags.HelloTag</tagclass>
<bodycontent>empty</bodycontent>
<info>Say Hi</info>
</tag>
<tag>
<name>helloSupport</name>
<tagclass>com.adspedia.gui.framework.tags.HelloTagSupport</tagclass>
<bodycontent>empty</bodycontent>
<info>Tag with Parameter</info>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>

<tag>
<name>tolowercase</name>
<tagclass>com.adspedia.gui.framework.tags.ToLowerCaseTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>To lower case tag</info>
</tag>
<tag>
<name>loop</name>
<tagclass>com.adspedia.gui.framework.tags.LoopTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>Tag with body and parameter</info>
<attribute>
<name>times</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
In my JSP page I use the same prefix for all these tags .
Lakshmi
Appreciate your time .
Lakshmi
 
Simon Brown
sharp shooter, and author
Posts: 1913
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So what's the problem now ... is the rest of the page still being skipped?
Simon
------------------
Simon Brown
Co-author of Professional JSP 2nd Edition
 
Lakshmi Anantharaman
Ranch Hand
Posts: 58
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I do not not why but it worked. probably because of the EVAL_PAGE returned by the doEndTag(). Thanks Simon . I have made steady progress with the custom Tags. I also have a copy of your book with me .
Lakshmi
----------------------------------------------------------------

Originally posted by Simon Brown:
So what's the problem now ... is the rest of the page still being skipped?
Simon


 
Not looking good. I think this might be the end. Wait! Is that a tiny ad?
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
    Bookmark Topic Watch Topic
  • New Topic