亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

JSP自定義標(biāo)簽一些實(shí)例

系統(tǒng) 1956 0
定義最簡(jiǎn)單的標(biāo)簽
自定義標(biāo)簽采用Default Adapter模式(缺省適配模式)
    
//最簡(jiǎn)單的標(biāo)簽
public class LangHuaTag extends TagSupport {
	private long startTime;
	private long endTime;
	
	public int doStartTag() throws JspException {
		startTime = System.currentTimeMillis();
		//表示定制標(biāo)記里面有所包括的JSP頁(yè)面
		return TagSupport.EVAL_BODY_INCLUDE;
	}
	public int doEndTag() throws JspException {
		endTime = System.currentTimeMillis();
		long elapsed = endTime - startTime;		
		try {
			JspWriter out = pageContext.getOut();
			out.println("runtime is "+ elapsed);
		} catch (IOException e) {
			e.printStackTrace();
		}
		//表示JSP頁(yè)面繼續(xù)運(yùn)行
		return TagSupport.EVAL_PAGE;
	}
	
}
//代屬性的標(biāo)簽
public class DateTag extends TagSupport {
	private String pattern = "yyyy-MM-dd hh:mm:ss";
	private Date date;
	//必須要有Set方法,因?yàn)槭菍傩钥梢栽O(shè)值
	public void setPattern(String pattern) {
		this.pattern = pattern;
	}
	
	public void setDate(Date date) {
		this.date = date;
	}

	public int doEndTag() throws JspException {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		//如果沒(méi)有就是當(dāng)前時(shí)間
		if(date==null){
			date = new Date();
		}		
		JspWriter out = pageContext.getOut();
		try {
			out.print(sdf.format(date));
		} catch (IOException e) {
			e.printStackTrace();
		}
		return TagSupport.EVAL_PAGE;
	}
}

/**
 * 循環(huán)輸出
 * @author Administrator
 *
 */
public class LoopTag extends TagSupport {
	private int times =0;
	//Set方法設(shè)值
	public void setTimes(int times) {
		this.times = times;
	}
	
	public int doStartTag() throws JspException {
		//表示定制標(biāo)記里面有所包括的JSP頁(yè)面
		return TagSupport.EVAL_BODY_INCLUDE;
	}
	
	public int doAfterBody() throws JspException {
		if(times>0){
			times--;
			//表示雙從標(biāo)簽開始輸入
			return TagSupport.EVAL_BODY_AGAIN;
		}	
		//表示結(jié)束,忽略標(biāo)簽內(nèi)部的內(nèi)容
		return TagSupport.SKIP_BODY;
	}
	
}


  



配置文件
    
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <tlib-version>1.0</tlib-version>
    <short-name>util</short-name>
    <uri>http://langhua.com/taglib/util</uri>
    <tag>
        <name>timer</name>
		<tag-class>com.langhua.tagsupport.LangHuaTag</tag-class>
		<body-content>JSP</body-content>
		<!-- JSP,empty表示能能包函內(nèi)容的,scriptless,tagdependent -->
    </tag>
    
    <tag>
        <name>date</name>
		<tag-class>com.langhua.tagsupport.DateTag</tag-class>
		<body-content>empty</body-content>		
		<!-- JSP,empty表示不能包函內(nèi)容的,scriptless,tagdependent -->
		<attribute>
			<!-- 標(biāo)簽名 -->
			<name>time</name>
			<!-- 是否為可選屬性 -->
			<required>false</required>
			<!-- 是否接受JSP表達(dá)示計(jì)算結(jié)果 -->
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>pattern</name>
			<required>true</required>
			<rtexprvalue>false</rtexprvalue>
		</attribute>
    </tag>
    
    <tag>
        <name>loop</name>
		<tag-class>com.langhua.tagsupport.LoopTag</tag-class>
		<body-content>JSP</body-content>		
		<!-- JSP,empty表示不能包函內(nèi)容的,scriptless,tagdependent -->
		<attribute>
			<!-- 標(biāo)簽名 -->
			<name>times</name>
			<!-- 是否為可選屬性 -->
			<required>true</required>
			<!-- 是否接受JSP表達(dá)示計(jì)算結(jié)果 -->
			<rtexprvalue>true</rtexprvalue>
		</attribute>		
    </tag>
</taglib>

  


JSP頁(yè)面
    
<%@ taglib prefix="util" uri="http://langhua.com/taglib/util"%>

<util:timer></util:timer>
<util:loop times="3">
  	<util:date pattern="yyyy-MM-dd" /><br/>
</util:loop>

  

TagSupport的流程圖

EVAL_BODY_INCLUDE 處理標(biāo)記內(nèi)容,并把這些內(nèi)容寫到輸出流中doStartTag()
SKIP_BODY 不處理標(biāo)記內(nèi)容doStartTag(),doAfterBody()
EVAL_BODY_AGAIN 又重頭處理doAfterBody()
EVAL_PAGE 繼續(xù)執(zhí)行JSP里面的代碼 doEndTag()
SKIP_PAGE 不繼續(xù)執(zhí)行JSP里面的代碼 doEndTag()



JSP自定義標(biāo)簽一些實(shí)例


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 男女羞羞免费视频 | 亚洲国产欧美日韩一区二区三区 | 亚洲天堂久久精品 | 女人18毛片一级毛片在线 | 色狠狠狠狠综合影视 | 国产成人精视频在线观看免费 | 免费国产成人高清在线观看视频 | 甜心女孩泰剧在线观看 | 日韩啊啊啊 | 三级成人做爰视频 | 91精品国产免费久久久久久 | 四库国产精品成人 | 狠狠大日本亚洲香蕉亚洲 | 国产亚洲精品九九久在线观看 | 京野结衣免费一区二区 | 999毛片 | 久久黄色小视频 | 香港aa三级久久三级不卡 | 91精品久久久久久久久久小网站 | 久久久综合色 | 久久性精品 | 国产网红自拍 | 精品中文字幕一区二区三区四区 | 青草久久精品 | 青草网址 | 中文一区在线 | 日本午夜大片a在线观看 | 国产精品91视频 | 色综合久久久 | 亚洲黄色在线视频 | 国产精品天天看 | 中文字幕在线观看一区二区三区 | 亚洲午夜精品 | 亚洲欧美在线观看一区二区 | 99最新网址| 久久中文字幕日韩精品 | 婷婷丁香亚洲 | 国产18到20岁美女毛片 | 青草社区| 在线色综合 | 亚洲免费区 |