1   package com.acme;
2   
3   import java.io.IOException;
4   import java.text.SimpleDateFormat;
5   import java.util.Date;
6   import java.util.StringTokenizer;
7   
8   import javax.servlet.jsp.JspContext;
9   import javax.servlet.jsp.JspException;
10  import javax.servlet.jsp.tagext.JspFragment;
11  import javax.servlet.jsp.tagext.SimpleTagSupport;
12  
13  public class Date2Tag extends SimpleTagSupport
14  {
15      String format;
16      
17      public void setFormat(String value) {
18          this.format = value;
19      }
20  
21      public void doTag() throws JspException, IOException {
22          String formatted = 
23              new SimpleDateFormat("long".equals(format)?"EEE 'the' d:MMM:yyyy":"d:MM:yy")
24              .format(new Date());
25          StringTokenizer tok = new StringTokenizer(formatted,":");
26          JspContext context = getJspContext();
27          context.setAttribute("day", tok.nextToken() );
28          context.setAttribute("month", tok.nextToken() );
29          context.setAttribute("year", tok.nextToken() );
30  
31          JspFragment fragment = getJspBody();
32          fragment.invoke(null);
33      }
34  }
35