在上一个例子的基础上,本例子添加了属性的支持。 实际意义,就是在jsp中,打印Hello。 可以根据输入的属性,决定字体的颜色,和字体大小。比上一个功能强大了一些。
 
1. 对应的JAVA 文件
package com.randy.tag;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class HelloPropTag extends TagSupport {

  private String fontSize ="3";
  private String fontColor ="#000000";
  public String getFontSize() {
    return fontSize;
  }

  public void setFontSize(String fontSize) {
    this.fontSize = fontSize;
  }

  public String getFontColor() {
    return fontColor;
  }

  public void setFontColor(String fontColor) {
    this.fontColor = fontColor;
  }

  @Override
  public int doEndTag() throws JspException {
    
    try {
      JspWriter out = pageContext.getOut();
        
        
      out.println("<font color=\""+fontColor+"\"size=\""+fontSize+"\">hello tag</font>");
        
    } catch (IOException e) {
      e.printStackTrace();
    }
    return    EVAL_BODY_INCLUDE;
  }

  @Override
  public int doStartTag() throws JspException {
    
    try {
      JspWriter out = pageContext.getOut();
      out.println("<br/>");
    } catch (IOException e) {
        
      e.printStackTrace();
    }
    return SKIP_PAGE;
  }

}
 
 
1.对应的tag 声明
<tag>
    <description> 含有属性</description>
    <name>helloPropTag</name>
    <tag-class>com.randy.tag.HelloPropTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>fontSize</name>
      <required>false</required>
    </attribute>
    
    <attribute>
      <name>fontColor</name>
      <required>true</required>
    </attribute>

  </tag>