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();
}
} |