FileDocCategorySizeDatePackage
GetLocalDateTag.javaAPI DocExample1974Thu Jun 28 16:14:16 BST 2001com.ora.jsp.tags.generic

GetLocalDateTag.java

package com.ora.jsp.tags.generic;

import java.io.*;
import java.util.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import com.ora.jsp.beans.locale.*;

/**
 * This class implements a custom action that inserts a date
 * value, formatted according to the currently selected locale,
 * in the response body. 
 * It uses the com.ora.jsp.beans.locale.LocaleBean.
 *
 * @author Hans Bergsten, Gefion software <hans@gefionsoftware.com>
 * @version 1.0
 */
public class GetLocalDateTag extends TagSupport {
    private String name;
    private Date date;
    
    /**
     * Sets the LocaleBean name property.
     *
     * @param name the name of the LocaleBean
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * Sets the date value property.
     *
     * @param value the numeric value
     */
    public void setDate(Date date) {
        this.date = date;
    }
    
    /**
     * Uses the LocaleBean, available in a scope as a variable
     * specified by the "name" property, to format the date 
     * specified by the "date" property. The result is added 
     * to the response body.
     */
    public int doEndTag() throws JspException {
        Object o = pageContext.findAttribute(name);
        if (o == null) {
            throw new JspException("LocaleBean named " + name + " not found");
        }
        if (!(o instanceof LocaleBean)) {
            throw new JspException("The object named " + name + 
                " is not a LocaleBean");
        }
        JspWriter out = pageContext.getOut();
        try {
            out.write(((LocaleBean) o).getDateString(date));
        }
        catch (IOException e) {} // Ignore
        return EVAL_PAGE;
    }
    
    /**
     * Releases all instance variables.
     */
    public void release() {
        name = null;
        date = null;
        super.release();
    }
}