JSP Simple Tag Support Parent Tag Info Example

Click here to download eclipse supported ZIP file




 

    
package com.cv.jsp.simple.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import org.apache.log4j.Logger;

public class SimpleTagSupportImpl extends SimpleTagSupport {

  private static final Logger LOGGER = Logger.getLogger(SimpleTagSupportImpl.class);

  private String item;

  public String getItem() {
    return item;
  }

  public void setItem(String item) {
    this.item = item;
  }

  public void doTag() throws JspException, IOException {

    JspTag handler = getParent();

    boolean flag = false;
    if (handler instanceof TagSupportImpl) {
      flag = true;
      LOGGER.info(" LOGGER : Parent tag available and it is TagSupportImpl ");
      TagSupportImpl classicTagHandler = (TagSupportImplhandler;
      String item2 = classicTagHandler.getItem();
      LOGGER.info(" LOGGER : TagSupportImpl item is : " + item2);
      try {
        getJspContext().getOut().print("<br>TagSupportImpl  item is  : " + item2+"<br>");
      catch (IOException e1) {
        e1.printStackTrace();
      }
    else if (handler instanceof SimpleTagSupportImpl) {
      LOGGER.info(" LOGGER : Parent tag available and it is SimpleTagSupportImpl ");
      SimpleTagSupportImpl mySimpleTagHandler = (SimpleTagSupportImplhandler;
      String item2 = mySimpleTagHandler.getItem();
      LOGGER.info(" LOGGER : SimpleTagSupportImpl item is : " + item2);
      try {
        getJspContext().getOut().print("<br>SimpleTagSupportImpl item is : " + item2+"<br>");
      catch (IOException e1) {
        e1.printStackTrace();
      }
    /*else {
      LOGGER.info(" LOGGER : It is not a Parent tag and it is SimpleTagSupportImpl ");
      String item2 = getItem();
      if (item2 != null) {
        flag = true;
        LOGGER.info(" LOGGER : SimpleTagSupportImpl item is : " + item2);
        getJspContext().getOut().print("<br>SimpleTagSupportImpl item is : " + item2+"<br>");
        int levels = findNumberOfParents();
        if(levels >= 1) {
        LOGGER.info(" LOGGER : SimpleTagSupportImpl levels available is : " + levels);
        getJspContext().getOut().print("<br>SimpleTagSupportImpllevels available is : " + levels+"<br>");
        }
      }
    }*/
    /*if (!flag) {
      StringWriter sw = new StringWriter();
      JspFragment jspBody2 = getJspBody();
      if(jspBody2 != null) {
        
        jspBody2.invoke(sw);
      }
      getJspContext().getOut().println("<br>"+sw.toString()+"<br>");
    }*/
  }

  private int findNumberOfParents() {
    int level = 0;
    JspTag parent = getParent();
    while (parent != null) {
      parent =  getParent();
      ++level;
    }
    return level;
  }

}


 

    
package com.cv.jsp.simple.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.log4j.Logger;

public class TagSupportImpl extends TagSupport {

  private static final Logger LOGGER = Logger.getLogger(TagSupportImpl.class);

  JspWriter jspWriter;

  private String item;

  public String getItem() {
    return item;
  }

  public void setItem(String item) {
    this.item = item;
  }


  public int doStartTag() throws JspException {

    LOGGER.info("Entered into doStartTag() of TagSupportImpl class... ");
    JspTag handler = getParent();
    if (handler instanceof TagSupportImpl) {
      LOGGER.info(" LOGGER : Parent tag available and it is TagSupportImpl ");
      TagSupportImpl classicTagHandler = (TagSupportImplhandler;
      String item2 = classicTagHandler.getItem();
      LOGGER.info(" LOGGER : TagSupportImpl item is : " + item2);
      try {
        pageContext.getOut().print("<br>TagSupportImpl  item is  : " + item2+"<br>");
        /*int levels = findNumberOfParents();
        if(levels >= 1) {
        LOGGER.info(" LOGGER : TagSupportImpl levels available is : " + levels);
        pageContext.getOut().print("<br>TagSupportImpl available is : " + levels);
        }*/
      catch (IOException e1) {
        e1.printStackTrace();
      }
    else if (handler instanceof SimpleTagSupportImpl) {
      LOGGER.info(" LOGGER : Parent tag available and it is SimpleTagSupportImpl ");
      SimpleTagSupportImpl mySimpleTagHandler = (SimpleTagSupportImplhandler;
      String item2 = mySimpleTagHandler.getItem();
      LOGGER.info(" LOGGER : SimpleTagSupportImpl item is : " + item2);
      try {
        pageContext.getOut().print("<br>SimpleTagSupportImpl item is : " + item2+"<br>");
        /*int levels = findNumberOfParents();
        if(levels >= 1) {
        LOGGER.info(" LOGGER : TagSupportImpl levels available is : " + levels);
        pageContext.getOut().print("<br>TagSupportImpl available is : " + levels);
        }*/
      catch (IOException e1) {
        e1.printStackTrace();
      }
    /*else {
      LOGGER.info(" LOGGER : It is not a Parent tag and it is TagSupportImpl ");
      String item2 = getItem();
      if (item2 != null) {
        try {
          LOGGER.info(" LOGGER : TagSupportImpl item is : " + item2);
          pageContext.getOut().print("<br>TagSupportImpl item is : " + item2);
          int levels = findNumberOfParents();
          if(levels >= 1) {
          LOGGER.info(" LOGGER : TagSupportImpl levels available is : " + levels);
          pageContext.getOut().print("<br>TagSupportImpl available is : " + levels);
          }
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }*/

    return EVAL_BODY_INCLUDE;
  }

  private int findNumberOfParents() {
    int level = 0;
    Tag parent = getParent();
    while (parent != null) {
      parent = parent.getParent();
      ++level;
    }
    return level;
  }

  /*public int doAfterBody() throws JspException {
    return SKIP_BODY;
  }*/

  /*
   * public int doEndTag() throws JspException { try { jspWriter.print(
   * "Classic end  tag output"); } catch (IOException ie) { throw new
   * JspException("IOEception raised===" + ie.toString()); }
   
   * return EVAL_PAGE; }
   */

}





<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="cv" uri="simpletagsupport"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<fieldset>
<legend>Result page...</legend>
<table align="center">
<tr>
<td><label>I am from parent MyClassicTagHandler and
child MyClassicTagHandler : </label></td>
<td><font color="RED"><cv:MyClassicTagHandler
item="apple">
This is MyClassicTagHandler :
<cv:MyClassicTagHandler item="banana">
</cv:MyClassicTagHandler>
</cv:MyClassicTagHandler></font></td>
</tr>
<tr>
<td><label>I am from parent MyClassicTagHandler and
child MySimpleTagHandler : </label></td>
<td><font color="RED"><cv:MyClassicTagHandler
item="apple">
This is MyClassicTagHandler:
<cv:MySimpleTagHandler item="bananaSimple">
This is MySimpleTagHandler:
</cv:MySimpleTagHandler>
</cv:MyClassicTagHandler></font></td>
</tr>
<tr>
<td><label>I am from parent MyClassicTagHandler and two
childs MySimpleTagHandler's : </label></td>
<td><font color="RED"> <cv:MyClassicTagHandler
item="apple">
This is MyClassicTagHandler:
<cv:MySimpleTagHandler item="apple">
This is MySimpleTagHandler.
<cv:MySimpleTagHandler item="bananaSimple">
</cv:MySimpleTagHandler>
</cv:MySimpleTagHandler>
</cv:MyClassicTagHandler></font></td>
</tr>
</table>
</fieldset>
</body>
</html>





#By default enabling Console appender
# Root logger option
log4j.rootLogger=INFO, stdout

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%c]:%L -->> %m%n

# Redirect log messages to a log file
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.File=C:\\servlet-application.log
#log4j.appender.file.MaxFileSize=5MB
#log4j.appender.file.MaxBackupIndex=10
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n




	
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cv.jsp.simple.tag</groupId> <artifactId>JSPSimpleTagSupportParentTagInfo</artifactId> <version>1.0</version> <packaging>war</packaging> <properties> <log4j-version>1.2.16</log4j-version> <java-version>1.8</java-version> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies> </project>


 
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>JSP Classic Tags...</display-name> <welcome-file-list> <welcome-file>simpleTag.jsp</welcome-file> </welcome-file-list> </web-app>


No comments:

Post a Comment