JSP Body Content Taglib TLD Example

Click here to download eclipse supported ZIP file




 

    
package com.cv.jsp.tld.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

import org.apache.log4j.Logger;

/**
 *
 @author Chandra Vardhan
 */
public class ChangeCaseBodyTagSupportImpl extends BodyTagSupport {
  
  private static final Logger LOGGER = Logger.getLogger(ChangeCaseBodyTagSupportImpl.class);

    private String mCase;

    public void setCase(String pCase) {
        this.mCase = pCase;
    }

    
    public int doAfterBody() throws JspException {
      
      LOGGER.info("Entered into doAfterBody() of ChangeCaseBodyTagSupportImpl class... ");
        try {
            BodyContent bc = getBodyContent();
            String body = bc.getString();
            JspWriter out = bc.getEnclosingWriter();
            if (body != null) {
                if ("upper".equalsIgnoreCase(mCase)) {
                    out.print(body.toUpperCase());
                else {
                    out.print(body.toLowerCase());
                }
            }
        catch (IOException ioe) {
            throw new JspException("Error: " + ioe.getMessage());
        }
        return SKIP_BODY;
    }
}


 

    
package com.cv.jsp.tld.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

import org.apache.log4j.Logger;

/**
 *
 @author Chandra Vardhan
 */
public class LoopTextBodyTagSupportImpl extends BodyTagSupport {

  private static final Logger LOGGER = Logger.getLogger(LoopTextBodyTagSupportImpl.class);
    private int mTimes = 0;
    private BodyContent mBodyContent;

    public void setTimes(int pTimes) {
        mTimes = pTimes;
    }

    
    public void setBodyContent(BodyContent pBodyContent) {
      LOGGER.info("Entered into setBodyContent(-) of LoopTextBodyTagSupportImpl class... ");
        mBodyContent = pBodyContent;
    }

    
    public int doStartTag() throws JspException {
      LOGGER.info("Entered into doStartTag() of LoopTextBodyTagSupportImpl class... ");
        if (mTimes > 1) {
            return EVAL_BODY_TAG;
        else {
            return SKIP_BODY;
        }
    }

    
    public int doAfterBody() throws JspException {
      LOGGER.info("Entered into doAfterBody() of LoopTextBodyTagSupportImpl class... ");
        if (mTimes > 1) {
            mTimes--;
            return EVAL_BODY_TAG;
        else {
            return SKIP_BODY;
        }
    }

    
    public int doEndTag() throws JspException {
      LOGGER.info("Entered into doEndTag() of LoopTextBodyTagSupportImpl class... ");
        try {
            if (mBodyContent != null) {
                mBodyContent.writeOut(mBodyContent.getEnclosingWriter());
            }
        catch (IOException pIOEx) {
            throw new JspException("Error: " + pIOEx.getMessage());
        }
        return EVAL_PAGE;
    }
}





<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="ct" uri="tagdefinition"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Upper or Lower Case</title>
</head>
<body>
<h2>
Upper Case :
<ct:changeCase case="upper">
            Hello World
        </ct:changeCase>
</h2>
<h2>
Lower Case :
<ct:changeCase case="lower">
                Hello World
        </ct:changeCase>
</h2>
<ct:loopText times="3">
<h3>Loop Text!</h3>
</ct:loopText>
<ct:tag1>
<ct:tag2 case="chote" />
<%
String name = "kodam";
%>
<ct:tag1>value=chote</ct:tag1>
</ct:tag1>
</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.servlet.zip</groupId> <artifactId>JSPBodyContentTaglibTLDProject</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>tagLibProject</display-name> <welcome-file-list> <welcome-file>input.jsp</welcome-file> </welcome-file-list> </web-app>






No comments:

Post a Comment