标签库程序应该有以下几部分组成:
(1)、标签的具体实现文件(*.java):必须继承javax.servlet.jsp.tagext.TagSuport
(2)、标签的描述文件(*.tld)
(3)、如果需要可以在web.xml中进行设置
(4)、在JSP中通过标签进行自定义标签库的调用
一、在具体实现文件(*.java)中,doStartTag方法:表示标签的开始
doStartEnd方法:表示标签的结束
二、*.tld文件是标签的描述文件,此文件对标签库的运行起绝对性作用,*.tld文件也是一个xml文件,如果是使用xml,则需要DTD、SCHEMA支持。
Name:表示标签的方法名称:<jsp:forward><jsp:include>
java实现类:
package com.wyq.TagTest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class Hello extends TagSupport{
@Override
public int doStartTag() throws JspException {
//从页面获取request,得到页面的值
ServletRequest request = pageContext.getRequest();
String str="www.wyq.cn";
//在servlet中打印要使用printWriter
//如果在标签中打印需要使用pageContext
JspWriter out=pageContext.getOut();
try{
out.print(str);
}catch(Exception e){
e.printStackTrace();
}
//只要打印完了字符串,则后面的代码就不需要执行了
return TagSupport.SKIP_BODY;
}
}
tld文件的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>hello</short-name>
<tag>
<name>mldn</name>
<tag-class>com.wyq.TagTest.Hello</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>