Mega Code Archive

 
Categories / Java Tutorial / JSP
 

Custom Tag To Get Parameter From PageContext

MyTag.java package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport  {   private int counter = 0;   private String[] names = null;   public int doStartTag()   {     names = (String[]) pageContext.getAttribute("names");     return EVAL_BODY_INCLUDE;   }   public int doAfterBody() throws JspException   {     try{       pageContext.getOut().print(" " + names[counter] + "<BR>");     } catch(Exception e){       throw new JspException(e.toString());     }     counter++;     if(counter >= names.length) {       return SKIP_BODY;     }     return EVAL_BODY_AGAIN;   } } MyTag.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.2</jsp-version>   <short-name>TagExamples</short-name>   <description>Example tags.</description>   <tag>     <name>iterator</name>     <tag-class>taglib.MyTag</tag-class>   </tag> </taglib> web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"     "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app>   <description>   Example web application illustrating the use of tags in the   "request" custom tag library, from the JAKARTA-TAGLIBS project.   </description>   <taglib>     <taglib-uri>http://rntsoft.com/taglibs</taglib-uri>     <taglib-location>/WEB-INF/MyTag.tld</taglib-location>   </taglib>   <security-role>     <role-name>admin</role-name>   </security-role> </web-app> Jsp page with custom tag <%@ taglib prefix="l" uri="WEB-INF/MyTag.tld" %> <HTML>     <HEAD>         <TITLE>Supporting Iterating Custom Tags</TITLE>     </HEAD>     <BODY>         <H1>Supporting Iterating Custom Tags</H1>         <%             String[] names = new String[]{ "A", "B", "C", "D" };             pageContext.setAttribute("names", names);         %>         <l:iterator>             Cast member:          </l:iterator>     </BODY> </HTML>