標(biāo)簽學(xué)習(xí)01

1、標(biāo)簽的作用

自定義標(biāo)簽是屬于JSP規(guī)范的。

開(kāi)發(fā)原則:JSP中不要使用<%%>(標(biāo)簽替換)和<%=%>(EL表達(dá)式)

自定義標(biāo)簽的作用:替換掉JSP中的JSP腳本(<%%>)肯污,實(shí)現(xiàn)一些簡(jiǎn)單的邏輯運(yùn)算。

2、標(biāo)簽的開(kāi)發(fā)步驟

a渐裂、編寫(xiě)一個(gè)類(lèi)豺旬,實(shí)現(xiàn)一個(gè)接口javax.servlet.jsp.tagext.SimpleTag.或者繼承javax.servlet.jsp.tagext.SimpleTagSupport。

import java.io.IOException;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.PageContext;

import javax.servlet.jsp.tagext.SimpleTagSupport;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Date;

//繼承? SimpleTagSupport

public class GetCurrentTime extends SimpleTagSupport {

@Override

//實(shí)現(xiàn) ?dotag方法

public void doTag() throws JspException, IOException {

// TODO Auto-generated method stub

super.doTag();

Date now = new Date();

DateFormat formate = new SimpleDateFormat();

String str = formate.format(now);

//獲取content

PageContext content? = (PageContext)getJspContext();

//輸出

content.getOut().write(str);

}

}

b柒凉、在WEB-INF目錄下族阅,建立一個(gè)擴(kuò)展名為tld(Tag Libary

Definition)的xml文件。

注:tld如果在WEB-INF或者在jar包的META-INF目錄下膝捞,都能自動(dòng)找到坦刀。

<?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">

<description> A tag library exercising SimpleTag handlers.</description>

<tlib-version>1.0</tlib-version>


<short-name>名字</short-name>

<uri>http://www.jiangjianli.com/Demo1</uri>

<tag>

//description否用于指定屬性的描述信息。

<description>demo1</description>

//name 必須有 ?用于指定屬性的名稱(chēng)蔬咬。屬性名稱(chēng)是大小寫(xiě)敏感的鲤遥,并且不能以jsp、_jsp林艘、java和sun開(kāi)頭盖奈。

<name></name>

//完整類(lèi)名

<tag-class></tag-class>

//?empty:沒(méi)有標(biāo)簽體

//scriptless:標(biāo)簽體可以包含el表達(dá)式和JSP動(dòng)作元素,但不能包含JSP的腳本元素? <前綴名:tagname></前綴名:tagname> ? ? ? ? ? ? ? ?這種方式調(diào)用

//如果是empty 在JSP可<前綴名:tagname/>調(diào)用

<body-content>scriptless</body-content>

<attribute>//標(biāo)簽中有參數(shù)是需配置參數(shù)名

<name></name>

<required>true</required>

//是否支持el表達(dá)式

<rtexprvalue>true</rtexprvalue>

</attribtue>

</tag>


在標(biāo)簽調(diào)用時(shí)傳遞了內(nèi)容如<demo:demo1>abcdef</demo:demo1>將會(huì)調(diào)用setJspBody方法

/*. 若存在標(biāo)簽體, JSP 引擎將把標(biāo)簽體封裝成一個(gè) JspFragment

對(duì)象狐援,調(diào)用setJspBody方法將JspFragment對(duì)象傳遞給標(biāo)

簽處理器對(duì)象钢坦。若標(biāo)簽體為空,這setJspBody將不會(huì)被

JSP引擎調(diào)用

*/

可以通過(guò)在dotag方法中通過(guò)下面代碼獲取到內(nèi)容

StringWriter sw = new StringWriter();

//將內(nèi)容寫(xiě)到SW中

getJspBody().invoke(sw);

//轉(zhuǎn)換為字符串

String str = sw.getBuffer().toString();

//輸出到瀏覽器

PageContext page = (PageContext)getJspContext();

page.getOut().write(str);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啥酱,一起剝皮案震驚了整個(gè)濱河市爹凹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌懈涛,老刑警劉巖逛万,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異批钠,居然都是意外死亡宇植,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)埋心,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)指郁,“玉大人,你說(shuō)我怎么就攤上這事拷呆∠锌玻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵茬斧,是天一觀的道長(zhǎng)腰懂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)项秉,這世上最難降的妖魔是什么绣溜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮娄蔼,結(jié)果婚禮上怖喻,老公的妹妹穿的比我還像新娘底哗。我一直安慰自己,他們只是感情好锚沸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布跋选。 她就那樣靜靜地躺著,像睡著了一般哗蜈。 火紅的嫁衣襯著肌膚如雪前标。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天恬叹,我揣著相機(jī)與錄音候生,去河邊找鬼。 笑死绽昼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的须蜗。 我是一名探鬼主播硅确,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼明肮!你這毒婦竟也來(lái)了菱农?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柿估,失蹤者是張志新(化名)和其女友劉穎循未,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體秫舌,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡的妖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了足陨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫂粟。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖墨缘,靈堂內(nèi)的尸體忽然破棺而出星虹,到底是詐尸還是另有隱情,我是刑警寧澤镊讼,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布宽涌,位于F島的核電站,受9級(jí)特大地震影響蝶棋,放射性物質(zhì)發(fā)生泄漏卸亮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一嚼松、第九天 我趴在偏房一處隱蔽的房頂上張望嫡良。 院中可真熱鬧锰扶,春花似錦、人聲如沸寝受。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)很澄。三九已至京闰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甩苛,已是汗流浹背蹂楣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讯蒲,地道東北人痊土。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像墨林,于是被迫代替她去往敵國(guó)和親赁酝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法旭等,類(lèi)相關(guān)的語(yǔ)法酌呆,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法搔耕,異常的語(yǔ)法隙袁,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,598評(píng)論 18 399
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96弃榨、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,399評(píng)論 0 10
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,805評(píng)論 0 11
  • 傳統(tǒng)標(biāo)簽技術(shù)復(fù)雜 寫(xiě)一個(gè)類(lèi)實(shí)現(xiàn)Tag接口 寫(xiě)一個(gè)tld文件菩收,描述寫(xiě)好的類(lèi) 在JSP頁(yè)面引入tld文件,就可以在JS...
    newdolphintime閱讀 385評(píng)論 0 1
  • 小編費(fèi)力收集:給你想要的面試集合 1.C++或Java中的異常處理機(jī)制的簡(jiǎn)單原理和應(yīng)用惭墓。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,578評(píng)論 1 114