JSP简单标签的开发

来源:互联网 发布:毕业生简历怎么写 知乎 编辑:程序博客网 时间:2024/05/16 17:56

1. 新建RepeatSampleTag类,代码如下:

package bid.zhazhapan.fims.tag;import java.io.IOException;import java.io.StringWriter;import javax.servlet.jsp.JspContext;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.JspFragment;import javax.servlet.jsp.tagext.SimpleTagSupport;public class RepeatSampleTag extends SimpleTagSupport {    private int num;// 定义属性    public void setNum(int num) {        this.num = num;    }    // 覆盖方法,标签的逻辑、迭代    public void doTag() throws JspException, IOException {        // 获得页面上下文对象        JspContext ctx = this.getJspContext();        // 获得封闭标签体对象        JspFragment fragment = this.getJspBody();        if (num > 0) {            // 定义一个字符流,用来接收标签体的内容            StringWriter writer = new StringWriter();            // 将标签体的内容输出到字符流中            fragment.invoke(writer);            // 从字符流中获得数据            String string = writer.getBuffer().toString();            for (int i = 1; i < num + 1; i++) {                ctx.getOut().write(i + "." + string.toUpperCase() + "<br/>");            }        } else {            // invoke()方法传入null值,采用默认的输出流            fragment.invoke(null);        }    }}

2. 配置xml文件(如何配置xml),部分代码如下:

<javaee:tag>    <javaee:name>repeat</javaee:name>    <javaee:tag-class>bid.zhazhapan.fims.tag.RepeatSampleTag</javaee:tag-class>    <javaee:body-content>scriptless</javaee:body-content>    <javaee:attribute>        <javaee:name>num</javaee:name>        <javaee:required>true</javaee:required>        <javaee:rtexprvalue>true</javaee:rtexprvalue>    </javaee:attribute>  </javaee:tag>

3. 调用标签,部分代码如下:

<mytag:repeat num="5">hello world</mytag:repeat>
0 0