public int doStartTag() throws JspException {
      JspWriter out = this.pageContext.getOut();

      try {
         //if "linked" attribute is not set, generate links for A-Z
         if(linked == null || linked.length() < 1) {
            for (char i='A'; i<='Z'; i++) {
              Character thisChar = new Character(i);
              out.print("<a href=\"#" + thisChar + "\">" + thisChar + "</a>&nbsp;&nbsp;");
            }

         } else {
         //otherwise, only put links for the letters specified
            for (char i='A'; i<='Z'; i++) {
              Character thisChar = new Character(i);
              if(linked.indexOf(i) > -1) {
                 out.print("<a href=\"#" + thisChar + "\">" + thisChar + "</a>&nbsp;&nbsp;");
              } else {
                 out.print(thisChar + "&nbsp;&nbsp;");
              }
            }
         }
      }
      catch(java.io.IOException e)
      {
         throw new JspTagException("IO Error: " + e.getMessage());
      }
      return EVAL_BODY_INCLUDE;
   }