自定義標籤的開發及配置說明
以下是自定義標籤的程序:
package servlet;
import javax.servlet.jsp.tagext.*;
import java.util.Date;
import javax.servlet.jsp.JspTagException;
public class HelloTag extends TagSupport {
public int doStartTag() throws JspTagException {
System.out.print("執行了JSF的!");
return EVAL_BODY_INCLUDE;
}
public int doEndTag() throws JspTagException{
String dataString=new Date().toString();
try{
pageContext.getOut().write("Hello World Hellking<br>現在時間是:"+dataString);
System.out.print("執行了JSF的!");
}catch(Exception e){
throw new JspTagException("Fatal error:hello tag conld not write to JSP out");
}
return EVAL_PAGE;
}
}
在WEB-INF/建立一個名爲tlds的文件夾,在下面寫入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>1.2</jsp-version>
<short-name>sfq55555</short-name>
<tag>
<name>hello</name>
<tag-class>servlet.HelloTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
在WEB-INF文件下找到web.xml文件,在其中加入
<jsp-config>
<taglib>
<taglib-uri>/demo</taglib-uri>
<taglib-location>/WEB-INF/tlds/HelloTag.tld</taglib-location>
</taglib>
</jsp-config>
這樣一個自定義標籤就配置成功了,以下是我對自定義標籤配置的一些理解,.
首先在WEB-INF/tlds/的tld文件中指定了這個標籤的位置,然後在WEB-INF/web.xml中對tld文件進行映射:<taglib-uri>/demo</taglib-uri>
如果你用訪問這個自定義標籤可以用以下JSP來訪問
<%@ page language="java" import="java.util.*" contentType="text/html;charset=gb2312"%>
<%@ taglib uri="/demo" prefix="somePrefix"%>
<html>
<head>
<title>TagSupport的應用示例</title>
</head>
<body>
<somePrefix:hello/>
xcvxcv
</body>
</html>
<%@ taglib uri="/demo" prefix="somePrefix"%>中的rui="/demo"就是在web.xml中映射的路徑.
JSP頁面是通過uri="/demo"來找到這個自定義標籤的.
以下是它的執行流程
最後記得加入自定義標籤的開發包"jstl.jar"