Set PageContext Attribute in JSP Page : PageContext « JSP « Java Tutorial






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://java2s.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 code

<%@ 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>
  Download:  SetPageContextAttributeInJSPPage.zip( 135 k)








23.33.PageContext
23.33.1.Save Value to PageContext
23.33.2.Set PageContext Attribute in JSP Page
23.33.3.Do Calculation on Value Saved in PageContext
23.33.4.Dispatch Page Based on Form Input
23.33.5.Compare Attribute in PageContext
23.33.6.Check Page Exception