日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JSP2.0的簡單標志庫擴展_SimpleTag

在jsp1.2時代已經(jīng)有標記庫了, 并且功能強大,但標記庫的編程和調(diào)用都比較復(fù)雜,導(dǎo) 致真正使用到WEB開發(fā)中的還是不多。JSP2.0推出的簡單標記庫擴展解決了以上的問題。 簡單標記庫相對JSP1.2中的標記庫來說,優(yōu)點在于: 對后臺程序員來說:結(jié)構(gòu)更簡單,實現(xiàn)接口更少,可以輕松實現(xiàn)后臺程序

創(chuàng)新互聯(lián)成立于2013年,我們提供高端網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計公司、網(wǎng)站定制、網(wǎng)絡(luò)營銷推廣、微信平臺小程序開發(fā)、微信公眾號開發(fā)、seo優(yōu)化排名服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計、程序開發(fā)來完成項目落地,為餐廳設(shè)計企業(yè)提供源源不斷的流量和訂單咨詢。

JSP 2.0中加入了新的創(chuàng)建自制標記的API:javax.servlet.jsp.tagext.SimpleTag,該 API定義了用來實現(xiàn)簡單標記的接口。和JSP 1.2中的已有接口不同的是,SimpleTag接口 不使用doStartTag()和doEndTag()方法,而提供了一個簡單的doTag()方法。這個方法在 調(diào)用該標記時只被使用一次。而需要在一個自制標記中實現(xiàn)的所有邏輯過程、循環(huán)和對 標記體的評估等都在這個方法中實現(xiàn)。從這個方面來講,SimpleTag可以和IterationTa g達到同等的作用。但SimpleTag的方法和處理周期要簡單得多。在SimpleTag中還有用來 設(shè)置JSP內(nèi)容的setJspBody()和getJspBody()方法。Web容器會使用setJspBody()方法定 義一個代表JSP內(nèi)容的JspFragment對象。實現(xiàn)SimpleTag標記的程序可以在doTag方法中 根據(jù)需要多次調(diào)用getJspBody().invoke()方法以處理JSP內(nèi)容。 對于前臺WEB頁面制作人員:在JSP1.2時代,Taglib頁面調(diào)用實際上是比較復(fù)雜的,Simpl eTag+EL表達式語言極大的簡化了Taglib調(diào)用,真正達到不懂JAVA的人員也可以輕松編寫 JSP頁面的目的。

一個Taglib頁面的編寫和調(diào)用包括三個流程:

1. 后臺程序員編寫要被調(diào)用的程序

簡單標志擴展實現(xiàn)示例:

java程序 RepeatSimpleTag.java://放到WEB-INF/classes/jsp2/examples/simpletag 下面 package jsp2.examples.simpletag;

 
 
 
  1. package jsp2.examples.simpletag;
  2. import javax.servlet.jsp.JspException; 
  3. import javax.servlet.jsp.tagext.SimpleTagSupport; 
  4. import java.util.HashMap; 
  5. import java.io.IOException;
  6. public class RepeatSimpleTag extends SimpleTagSupport {
  7. private int num;
  8. public void doTag() throws JspException, IOException { 
  9. for (int i=0; i
  10. getJspContext().setAttribute("count", 
  11. String.valueOf( i + 1 ) ); 
  12. getJspBody().invoke(null); 
  13. }
  14. public void setNum(int num) { 
  15. //這個用來設(shè)置num的值,這個方法將在tld文件中調(diào)用 
  16. this.num = num; 

----------------------------

2. 編輯Tag標志描述文件,這個文件要放在WEB-INFjsp2下面,并且這個文件要以tld為 文件結(jié)尾。

repeatTaglib.tld (標志庫描述文件,放在WEB-INF下面的jsp2下面)

 
 
 
  1. < ?xml version="1.0" encoding="UTF-8" ?> 
  2. < taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org 
  3. /2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2e 
  4. e web-jsptaglibrary_2_0.xsd" version="2.0"> 
  5. < description>A tag library exercising SimpleTag handlers.< /description> 
  6. < tlib-version>1.0< /tlib-version> 
  7. < short-name>SimpleTagLibrary< /short-name> 
  8. < uri>/SimpleTagLibrary< /uri> 
  9. < tag> < !--這里是開始標志描述--> 
  10. < name>repeat< /name> < !--這里設(shè)定的標志名稱,供jsp文件調(diào)用--> 
  11. < tag-class>jsp2.examples.simpletag.RepeatSimpleTag< /tag-class> 
  12. < !--對應(yīng)的java文件路徑--> 
  13. < body-content>scriptless< /body-content> 
  14. < variable> < !--設(shè)置要獲取的變量返回值--> 
  15. < description>Current invocation count (1 to num)< /descri 
  16. ption> 
  17. < name-given>count< /name-given> 
  18. < /variable> 
  19. < attribute> < !--設(shè)置java類中變量,調(diào)用java文件中的setNum()方法--> 
  20. < name>num< /name> 
  21. < required>true< /required> 
  22. < rtexprvalue>true< /rtexprvalue> 
  23. < /attribute> 
  24. < /tag> < !--//這里是結(jié)束標志描述--> 
  25. < /taglib> 

----------------------------

3.JSP頁面人員就可以直接調(diào)用了。

 
 
 
  1. < %@ taglib prefix="repeattag" uri="/WEB-INF/jsp2/repeatTaglib.tld" %> 
  2. < html> 
  3. < body> 
  4. < br> 
  5. < repeattag:repeat num="5">//向標記庫文件中的repeat標記付值 
  6. 獲得返回值{count} of 5< br>//得到返回結(jié)果(java程序中實現(xiàn)了循環(huán)) 
  7. < /repeattag:repeat> 
  8. < /body> 
  9. < /html> 

看這么簡單就可以得到想要的結(jié)果,方便吧。

----------------------------

使用標簽文件(JSP fragment): 使用簡單標簽擴展機制的另一種簡單的方法是通過標簽文件。 標簽文件是一種資源文件,網(wǎng)頁作者可以利用它抽取一段JSP代碼,通過定制功能來實現(xiàn) 代碼的復(fù)用。換句話說,標簽文件允許JSP網(wǎng)頁作者使用JSP語法創(chuàng)建可復(fù)用的標簽庫。 標簽文件的擴展名必須是“.tag”。表面上標簽文件文件和jsp1.2中的jsp:include 指 令中的包含文件好像是一樣的,但實際上還是有一些不同的,標簽文件一般功能比較短小 簡單而且重復(fù)使用率高的一些代碼。

----------------------------

一個簡單的標簽文件 SimpleTag.tag 這個文件放到WEB-INF/tags下面

 
 
 
  1. < h4>hello,welcome to here ,here is a simple tag Example< /h4> 
  2. char.jsp 
  3. < %@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> 
  4. < HTML> 
  5. < BODY> 
  6. < H2>Tag File Example< /H2> 
  7. < P>< B>The output of my first tag file is< /B>< tags:SimpleTag/> 
  8. < /BODY> 
  9. < /HTML>

如果其他JSP頁面中還要使用這個標簽文件,同樣也可以實現(xiàn)這調(diào)用這個標志庫文件,達到 簡單的代碼復(fù)用的目的。

----------------------------

標簽文件(JSP fragment)的基本特點是可以使處理JSP的容器推遲評估JSP標記屬性。我 們知道一般JSP是首先評估JSP標記的屬性,然后在處理JSP標記時使用這些屬性,而JSP fragment提供了動態(tài)的屬性。也就是說,這些屬性在JSP處理其標記體時是可以被改變 的。標簽文件是用文本文件格式(JSP語法)實現(xiàn)自制標記,這也是JSP2.0的一個主要新功能。

----------------------------

標簽文件的動態(tài)復(fù)用 標簽文件可以作為模板使用。指令attribute類似于TLD中的< attribute>元素,允許聲明 自定義的動作屬性。

 
 
 
  1. < %@ attribute name="color" %> 
  2. < %@ attribute name="bgcolor" %> 
  3. < %@ attribute name="title" %> 
  4. < TABLE border="0" bgcolor="${color}"> 
  5. < TR> < TD>< B>${title}< /B>< /TD> < /TR> 
  6. < TR> < TD bgcolor="${bgcolor}"> < jsp:doBody/> < /TD> < /TR> 
  7. < /TABLE> 
  8. 以下是調(diào)用這個Tag文件的jsp文件 
  9. < %@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> 
  10. < HTML>< BODY> 
  11. < TABLE border="0"> 
  12. < TR valign="top"> 
  13. < TD> 
  14. < tags:display color="#ff0000" bgcolor="#ffc0c0" title="Travel"> Last French 
  15. Concorde Arrives in NY 
  16. Another Travel Headline 
  17. Yet Another Travel Headline 
  18. < /tags:display> 
  19. < /TD> 
  20. < TD> < tags:display color="#00fc00" bgcolor="#c0ffc0" title="Technology"> Jav 
  21. a for in-flight entertainment 
  22. Another Technology Headline 
  23. Another Technology Headline 
  24. < /tags:display> 
  25. < /TD> 
  26. < TD> < tags:display color="#ffcc11" bgcolor="#ffffcc" title="Sports"> America 
  27. n Football NBA Soccer 
  28. < /tags:display> 
  29. < /TD> 
  30. < /TR> 
  31. < /TABLE> < /BODY> < /HTML>

每次設(shè)定 Tag文件中的相關(guān)的屬性,而Tag標志文件則根據(jù)設(shè)定的屬性顯示相應(yīng)的結(jié)果??梢哉f在JSP2.0中使用標簽庫是大大的方便了。


文章標題:JSP2.0的簡單標志庫擴展_SimpleTag
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/cdogcpg.html