国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP自定義標簽是如何實現的

2024-09-05 00:23:39
字體:
來源:轉載
供稿:網友

本文學習的目的,知道自定義標簽是如何實現的。做一個最簡單的自定義標簽<mytag:hello/>,效果是打印hello world!

1、編寫標簽處理類HelloTag(實現javax.servlet.jsp.tagext.Tag類)

package cn.itcast.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
public class HelloTag implements Tag {
    private PageContext pageContext;
    private Tag tag;
   
    public int doEndTag() throws JspException {
        try {
            pageContext.getOut().print(/"hello world!/");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return Tag.EVAL_PAGE;
    }
    public int doStartTag() throws JspException {
        return Tag.SKIP_BODY;
    }
    public Tag getParent() {
        return null;
    }
    public void release() {
    }
    public void setPageContext(PageContext arg0) {
        this.pageContext = arg0;
    }
    public void setParent(Tag arg0) {
        this.tag = arg0;
    }
}

注意Tag中定義的幾個常量的含義(EVAL_PAGE,SKIP_BODY等)

2、編寫hellotag.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-version>1.2</jsp-version>
    <short-name>tagSample</short-name>[Page]
    <uri>/hellotag</uri>
    <tag>
        <name>hello</name>
        <tag-class>cn.itcast.tag.HelloTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>

3、編寫測試jsp文件

<%@ page contentType=/"text/html; charset=GBK/" %>
<%@ page errorPage=/"error.jsp/" %>
<%@ taglib uri=/"/WEB-INF/hellotag.tld/" prefix=/"mytag/" %>
<html>
<head>
<title></title>
</head>
<body>
<mytag:hello/>
<mytag:hello>haha</mytag:hello>
</body>
</head>

測試結果應該是打印出兩個hello world!

標簽庫的優點

1、最大限度地消除jsp頁面中嵌入的java代碼
2、增強代碼擴展性、可讀性、代碼復用,簡化了jsp頁面編寫的工作量
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肃北| 黎川县| 山阴县| 鄂尔多斯市| 张家港市| 黄冈市| 铜鼓县| 科技| 上饶市| 肇东市| 来宾市| 新巴尔虎右旗| 马关县| 兴国县| 佛冈县| 宜川县| 温泉县| 长顺县| 青海省| 洱源县| 萨嘎县| 新密市| 灌云县| 云龙县| 万荣县| 介休市| 灵川县| 金溪县| 罗山县| 牡丹江市| 泰宁县| 鄄城县| 德阳市| 城固县| 开封市| 军事| 安国市| 永嘉县| 成武县| 当雄县| 牡丹江市|