自定义标签开发整理 从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类SimpleTagSupport。 标签扩展API层次结构: TLD文件元素详解: 每个自定义标签都必须在TLD文件中声明,TLD文件只不过是一个XML文件。根元素是<taglib>,它包含一个或者多个<tag>标签,该元素用来声明定制标签。<taglib>元素中只有<tlib-version>元素是必须的,其他都是可选的。 TLD文件中的元素
<tag>元素的子元素
<attribute>的子元素
实例(继承SimpleTagSupport类方式): 编写一个DateTag标签,输出系统时间。<c1:date/>,输出的格式:2011年11月9日 step1: 写一个java类,继承SimpleTagSupport类 step2: override doTag()方法,在该方法里,实现相应的处理逻辑 1 package mytag; 2 import java.io.IOException; 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 import javax.servlet.jsp.JspException; 6 import javax.servlet.jsp.JspWriter; 7 import javax.servlet.jsp.PageContext; 8 import javax.servlet.jsp.tagext.SimpleTagSupport; 9 10 public class DateTag extends SimpleTagSupport{ 11 @Override 12 public void doTag() throws JspException, IOException { 13 PageContext ctx = (PageContext)getJspContext(); 14 JspWriter out = ctx.getOut(); 15 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); 16 out.println(sdf.format(new Date())); 17 } 18 } step3: 在.tld文件当中,描述该标签 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <taglib xmlns="http://java./xml/ns/j2ee" 3 xmlns:xsi="http://www./2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java./xml/ns/j2ee http://java./xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 5 version="2.0"> 6 <tlib-version>1.1</tlib-version> 7 <short-name>c1</short-name> 8 <uri>http://www./mytag1</uri> 9 <tag> 10 <name>date</name> 11 <tag-class>mytag.DateTag</tag-class> 12 <body-content>empty</body-content> 13 </tag> 14 </taglib> step4: 使用taglib导入标签(jsp中)
1 <%@taglib prefix="c1" uri="http://www./mytag1" %> 2 <c1:date/>
|
|