Menú Curso Java Web (JSP's/Servlets) : Código Fuente Saludos.java para generar un Tag JSP a medida.

(Anterior) Tags JSP's hechos a Medida ("Custom")

Código Fuente Saludos.java

package com.osmosislatina.taglib;

import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.util.*;
import java.io.*;


public class Saludo extends TagSupport 
{

public int doStartTag() throws JspException { // Traer la fecha del Sistema GregorianCalendar currTime = new GregorianCalendar(); // Extraer la hora del dia int hour = currTime.get(Calendar.HOUR_OF_DAY); try { // Traer el contexto de la pagina para imprimir mensaje JspWriter out = pageContext.getOut(); // Entrar en condicional para verificar la hora del sistema if ((hour > 5) && (hour <=12)) { out.println("Buenos Dias"); } else if ((hour > 12) && (hour <=19)) { out.println("Buenas Tardes"); } else { out.println("Buenas Noches"); } } catch (IOException exc) { throw new JspException(exc.toString()); } // Brincar el Cuerpo que se encuentra dentro del Tag. return SKIP_BODY; }
    public int doEndTag() 
    { 
	return EVAL_PAGE;
    }

}

  • El primer paso de esta Clase es definir la librería ("package") a la cual pertenecerá e importar todas aquellas librerías/clases que son necesarias para generar el Tag.

  • Posteriormente se inicia la declaración de la Clase la cual hereda("inherit") el comportamiento de la Clase Base TagSupport, esta última es la que siempre debe emplearse al crearse un JSP hecho a medida; esto permite acceso a los métodos base para Tags a medida que son : doStartTag() y doEndTag().

  • El método doStartTag() es utilizado para dar instrucciones que serán utilizadas al encontrarse el inicio del Tag.

    • Las primeras declaraciones generan la fecha del sistema y extraen la hora del día.

    • Dentro del ciclo try/catch se entra en la serie de decisiones que en base a la hora envían un mensaje correspondiente.

    • Una vez terminado el ciclo try/catch se regresa el valor SKIP_BODY, esto indica que el contenido incluido dentro del Tag será omitido, observe:

      <mitag> Este es el contenido dentro de él </mitag>

      Si esta clase representa el Tag mitag el contenido dentro del mismo será omitido, otra alternativa es el parámetro EVAL_BODY_INCLUDE que regresaría el contenido dentro del Tag.

  • El método doEndTag() es utilizado para dar instrucciones que serán utilizadas al encontrarse el fin del Tag; en este caso se retorna el parámetro EVAL_PAGE el cual indica que se continúe evaluando el JSP en cuestión; otra alternativa es utilizar SKIP_PAGE instrucción que daría por terminado el JSP, dicho caso será ilustrado en el siguiente ejemplo de Tags hechos a medida.

Terminos Legales de Contenido ©2000-2011 Osmosis Latina

Diseñado bajo estándares : XHTML   CSS  

webmaster@osmosislatina.com