JSP6 - EL函數(shù) & 自定義標(biāo)簽

EL函數(shù)

自定義EL函數(shù)

自定義EL函數(shù)

自定義EL函數(shù)的注意事項(xiàng)

ElDemo1.java文件

public class ElDemo1 {
    public static String sayHello(String name){
        return "Hello" + name;
    }
}

myfn.dtl文件

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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">
 <tlib-version>1.0</tlib-version>
 <short-name>myfn</short-name>
 <uri>http://www.limaoquan.com/1020/myfn</uri>
 
 <!-- 配置自定義EL函數(shù) -->
 <function>
    <!-- 配置方法名稱 -->
    <name>sayHi</name>
    <!-- 配置方法所在的類 -->
    <function-class>cn.el.ElDemo1</function-class>
    <!-- 配置方法的簽名 -->
    <function-signature>java.lang.String sayHello(java.lang.String)</function-signature>
 </function>
 
</taglib>

自定義標(biāo)簽

自定義標(biāo)簽
現(xiàn)在用右邊的過(guò)程自定義標(biāo)簽

簡(jiǎn)單標(biāo)簽

重寫(xiě)5個(gè)方法:

  • void setJspContext(JspContext pc)
  • void setParent(JspTag parent)
  • void setJspBody(JspFragment jspBody)
  • void doTag()
  • JspTag getParent()
執(zhí)行順序
自定義標(biāo)簽簡(jiǎn)介和快速入門(mén)

自定義標(biāo)簽的快速入門(mén)

圖片.png

demo1.java

public class demo1 extends SimpleTagSupport{
    private PageContext pc;

    @Override
    public void doTag() throws JspException, IOException {
        pc.getOut().write("hello");
    }

    /**
     * 服務(wù)器默認(rèn)先執(zhí)行該方法
     */
    @Override
    public void setJspContext(JspContext pc) {
        this.pc = (PageContext)pc;
    }
}

配置 mycc.tld

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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">
 <tlib-version>1.0</tlib-version>
 <short-name>mycc</short-name>
 <uri>http://www.limaoquan.com/1020/mycc</uri>
 
 <!-- 配置自定義標(biāo)簽 -->
 <tag>
    <!-- 配置自定義標(biāo)簽的名稱 -->
    <name>print</name>
    <!-- 配置類的全路徑 -->
    <tag-class>cn.tag.demo1</tag-class>
    <!-- 配置標(biāo)簽主體 -->
    <body-content>empty</body-content>
 </tag>
 
</taglib>

引用標(biāo)簽 tag.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://www.limaoquan.com/1020/mycc" prefix="mycc"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<mycc:print/>

</body>
</html>

帶有標(biāo)簽主體的自定義標(biāo)簽

帶有標(biāo)簽主體的自定義標(biāo)簽
Body-content的配置

tagDemo2.java

public class TagDemo2 extends SimpleTagSupport{
    PageContext pc;
    @Override
    public void doTag() throws JspException, IOException {
        JspFragment jf = getJspBody();
        jf.invoke(pc.getOut());
    }

    @Override
    public void setJspContext(JspContext pc) {
        this.pc = (PageContext)pc;
    }
    
}
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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">
 <tlib-version>1.0</tlib-version>
 <short-name>mycc</short-name>
 <uri>http://www.limaoquan.com/1020/mycc</uri>
 
 <!-- 配置自定義標(biāo)簽 -->
 <tag>
    <!-- 配置自定義標(biāo)簽的名稱 -->
    <name>print</name>
    <!-- 配置類的全路徑 -->
    <tag-class>cn.tag.demo1</tag-class>
    <!-- 配置標(biāo)簽主體 -->
    <body-content>empty</body-content>
 </tag>
 
 <tag>
    <name>out</name>
    <tag-class>cn.tag.TagDemo2</tag-class>
    <body-content>scriptless</body-content>
 </tag>
</taglib>
<mycc:out>
    妹妹
</mycc:out>

還需要仔細(xì)看《自定義標(biāo)簽.ppt》in day13

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末陕贮,一起剝皮案震驚了整個(gè)濱河市潘飘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卜录,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筐高,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡犬辰,警方通過(guò)查閱死者的電腦和手機(jī)冰单,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)涵卵,“玉大人荒叼,你說(shuō)我怎么就攤上這事』祷蓿” “怎么了嫁乘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)仓蛆。 經(jīng)常有香客問(wèn)我挎春,道長(zhǎng),這世上最難降的妖魔是什么直奋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任脚线,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拓巧。我一直安慰自己,他們只是感情好肛度,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著伪煤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抱既。 梳的紋絲不亂的頭發(fā)上扁誓,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天蝗敢,我揣著相機(jī)與錄音,去河邊找鬼寿谴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛咏瑟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播响蕴,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼浦夷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼辜王!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起呐馆,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤汹来,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后收班,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡社付,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年鸥咖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啼辣。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熙兔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出住涉,到底是詐尸還是另有隱情,我是刑警寧澤花沉,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布媳握,位于F島的核電站,受9級(jí)特大地震影響蛾找,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柿赊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一幻枉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熬甫,春花似錦、人聲如沸瞻颂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扣唱。三九已至噪沙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間正歼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工喜爷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萄唇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓湃密,卻偏偏與公主長(zhǎng)得像四敞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忿危,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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