結構如下:
①建立page.tld檔案:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<!--定義标簽版本庫 -->
<tlib-version>1.0</tlib-version>
<!--定義jsp版本庫 -->
<jsp-version>1.2</jsp-version>
<short-name>Cms Tag</short-name>
<uri>http://www.gdie.page</uri>
<description><!--标簽描述- -->
A simple appbase tag library
</description>
<tag>
<name>page</name><!--tag的名字 -->
<tag-class>com.cms.common.tag.PageTag</tag-class><!--tag對應的java類的名字 -->
<body-content>empty</body-content>
<!--關于body-content 有三個值可選;empty:标簽體必須為空;jsp:标簽由其他jsp元素組成比如标簽中含有<%=attributeName%>的jsp元素,那麼此時body-content的值就是實際attributeName傳入的值;tagdependent:有标簽解釋不帶jsp轉換(這個深入的含義不太了解) -->
<attribute><!---這裡表示的是這個tag的一個參數 -->
<name>cmsform</name><!--這個參數的名字 -->
<required>true</required><!--是否是必填選項 -->
<rtexprvalue>true</rtexprvalue><!--這個參數的值是否可以寫入,換句話說 就是這個參數是否可以動态指派 -->
</attribute>
</tag>
</taglib>
②PageTag.java
package com.cms.common.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class PageTag extends TagSupport {
private static final long serialVersionUID = 1L;
private String cmsform = "";
public String getCmsform() {
return cmsform;
}
public void setCmsform(String cmsform) {
this.cmsform = cmsform;
}
public int doStartTag()
{
return super.SKIP_BODY;
}
public int doEndTag() throws JspException
{
JspWriter writer=pageContext.getOut();
try {
writer.print("這是我的标簽示例<br/>"+"cmsform :"+this.cmsform);
} catch (Exception e) {
e.printStackTrace();
}
return super.EVAL_PAGE;
}
}
③web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>springmvc3</display-name>
<jsp-config>
<taglib>
<taglib-uri>http://www.gdie.page</taglib-uri>
<taglib-location>/tld/page.tld</taglib-location>
</taglib>
</jsp-config>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
④index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="jason" uri="http://www.gdie.page" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jason:page cmsform="success..."/>
</body>
</html>
運作效果如下: