文章目錄
-
- 什麼時候需要使用jsp自定義标簽?
- 自定義标簽的開發步驟
什麼時候需要使用jsp自定義标簽?
當jsp的内置标簽和jstl标簽庫内的标簽都滿足不了需求,這時候就需要開發者自定義标簽。
自定義标簽的開發步驟
步驟一
編寫一個普通的java類,此時需要繼承TagSupport類
package com.vmaxtam.dotest;
import javax.servlet.jsp.tagext.TagSupport;
public class MyTagTest extends TagSupport {
}
步驟二
重寫父類的setPageContext方法,作用于得到目前jsp頁面的pageContext對象
public class MyTagTest extends TagSupport {
private PageContext pageContext;
@Override
public void setPageContext(PageContext pageContext) {
this.pageContext=pageContext;
}
}
步驟三
重寫父類的doStartTag方法,裡面寫上你定義的标簽的java操作,這裡我定義的标簽用作向浏覽器輸出一大段文字資訊
@Override
public int doStartTag() throws JspException {
try {
pageContext.getResponse().getWriter().write("小王說:曉哥,我大哥");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return super.doStartTag();
}
步驟四
在你的web應用目錄下,找到WEB-INF檔案夾,在裡面建立一個tld類型的檔案(注:一定要是tld檔案)
然後再裡面注冊你的标簽吧:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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-version>1.2</jsp-version><!-- 代表jsp的版本 -->
<short-name>mtt</short-name><!-- 你的标簽庫的簡稱 -->
<uri>http://vmaxtam.com/mytag</uri><!-- 你标簽庫的引用uri -->
<tag>
<name>wangyiying</name><!-- 你定義的标簽的名稱 -->
<tag-class>com.vmaxtam.dotest.MyTagTest</tag-class><!-- 對應的标簽處理程式:包名+類名 -->
<body-content>JSP</body-content><!-- 标簽體内容的格式 -->
</tag>
</taglib>
注:如果你忘記了怎麼寫,可以參考jstl裡的tld檔案進行編寫
步驟五
你要在使用你定義的标簽的jsp頁面導入你的标簽庫!就像導入類包一樣(也稱為:調用自己所寫的标簽)
隻需在jsp頁面寫上下面内容:
<%@taglib uri="http://vmaxtam.com/mytag" prefix="mmt" %>
步驟6
接下面我們就可以開始使用标簽了
<html>
<head>
<title>My JSP 'testit.jsp' starting page</title>
</head>
<body>
<mmt:mytag></mmt:mytag>
</body>
</html>
這樣就編寫完了噢