<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

    JSP2.0中為了簡化標(biāo)簽的復(fù)雜性,增加了制作Simple Tag的標(biāo)簽類SimpleTagSupport類。
    SimpleTagSupport類是實(shí)現(xiàn)SimpleTag接口的。它只需要實(shí)現(xiàn)一個doTag()方法即可,而不需要一堆回傳值。

    舉例說明:
    例1:HelloSimpleTag標(biāo)簽
    第一步:制作標(biāo)簽處理類
    HelloSimpleTag.java

    package com.newould.taglib;

    import java.io.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;

    public class HelloSimpleTag extends SimpleTagSupport {

    public void doTag() throws JspException, IOException {
    ??
    ????? JspWriter out = getJspContext().getOut();
    ????? out.println("Hello Simple Tag");
    }
    }

    第二步:編寫標(biāo)簽性質(zhì)文件
    MyTaglib.tld

    <?xml version="1.0" encoding="UTF-8" ?>

    <taglib xmlns=" ?????? xmlns:xsi=" ?????? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    ?????? version="2.0">
    ????
    ?????? <description>My Taglib by JavaWorld.com.tw</description>
    ?????? <tlib-version>1.0</tlib-version>
    ?????? <jsp-version>2.0</jsp-version>
    ?????? <short-name>Mytaglib</short-name>
    ?????? <uri></uri>
    ......

    <tag>
    ???????? <description>Hello Simple Tag</description>
    ???????? <name>HelloSimpleTag</name>
    ???????? <tag-class>com.newould.taglib.HelloSimpleTag</tag-class>
    ???????? <body-content>empty</body-content>
    ?????? </tag>
    </taglib>

    第三步:編寫Jsp網(wǎng)頁
    HelloSimpleTag.jsp

    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ taglib uri="/WEB-INF/tlds/MyTaglib.tld" prefix="mytag" %>

    <html>
    <head>
    <title>HelloSimpleTag.jsp</title>
    </head>
    <body>

    <h2>Simple Tag 標(biāo)簽</h2>

    <h1><mytag:HelloSimpleTag /></h1>

    </body>
    </html>

    =================================================================

    例2:AddSimpleTag標(biāo)簽
    第一步:制作標(biāo)簽處理類
    AddSimpleTag.java

    package com.newould.taglib;

    import java.io.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;

    public class AddSimpleTag extends SimpleTagSupport {

    private int num1 = 0;
    private int num2 = 0;

    public void setNum1(int num1) {
    ????? this.num1 = num1;
    }

    public void setNum2(int num2) {
    ????? this.num2 = num2;
    }

    public void doTag() throws JspException, IOException {

    ????? JspContext ctx = getJspContext();
    ????? JspWriter out = ctx.getOut();
    ???
    ????? int sum = num1 + num2;
    ????? ctx.setAttribute("sum", Integer.toString(sum));
    ??
    ????? out.println(num1 + " + " + num2 + " = " + sum);
    }
    }

    第二步:編寫標(biāo)簽性質(zhì)文件
    MyTaglib.tld

    <?xml version="1.0" encoding="UTF-8" ?>

    <taglib xmlns=" ?????? xmlns:xsi=" ?????? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    ?????? version="2.0">
    ????
    ?????? <description>My Taglib by JavaWorld.com.tw</description>
    ?????? <tlib-version>1.0</tlib-version>
    ?????? <jsp-version>2.0</jsp-version>
    ?????? <short-name>Mytaglib</short-name>
    ?????? <uri></uri>
    ......

    <tag>
    ???????? <description>Add Simple Tag</description>
    ???????? <name>Add</name>
    ???????? <tag-class>com.newould.taglib.AddSimpleTag</tag-class>
    ???????? <body-content>empty</body-content>
    ??????
    ???????? <attribute>
    ?????????? <name>num1</name>
    ?????????? <required>true</required>
    ?????????? <rtexprvalue>true</rtexprvalue>
    ???????? </attribute>

    ???????? <attribute>
    ?????????? <name>num2</name>
    ?????????? <required>true</required>
    ?????????? <rtexprvalue>true</rtexprvalue>
    ???????? </attribute>
    ????????????
    ?????? </tag>
    ???
    </taglib>

    第三步:編寫Jsp網(wǎng)頁
    AddSimpleTag.jsp

    %@ page contentType="text/html;charset=GB2312" %>
    <%@ taglib uri="/WEB-INF/tlds/MyTaglib.tld" prefix="mytag" %>

    <html>
    <head>
    <title>AddSimpleTag.jsp</title>
    </head>
    <body>

    <h2>AddSimpleTag 標(biāo)簽</h2>

    <h1><mytag:Add num1="5" num2="9" /></h1>

    最后結(jié)果:${sum}

    </body>
    </html>

    =================================================================

    例3 RepeatSimpleTag標(biāo)簽
    RepeatSimpleTag標(biāo)簽 主要是用來重復(fù)顯示某段文字。
    這個例子在處理上與前兩個例子有點(diǎn)不同

    第一步:制作標(biāo)簽處理類
    RepeatSimpleTag.java

    package com.newould.taglib;

    import java.io.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;

    public class RepeatSimpleTag extends SimpleTagSupport {

    private int count = 0;//重復(fù)的次數(shù)
    private JspFragment fragment;//重復(fù)的內(nèi)容

    public void setCount(int count) {
    ????? this.count = count;
    }

    public void setFragment(JspFragment fragment) {
    ????? this.fragment = fragment;
    }

    public void doTag() throws JspException, IOException {

    ????? JspContext ctx = getJspContext();
    ????? JspWriter out = ctx.getOut();
    ???
    ????? for(int i=0 ; i<count ; i++) {
    ?????? fragment.invoke(null);//表示將fragment的內(nèi)容顯示出來
    ????? }
    }
    }

    第二步:編寫標(biāo)簽性質(zhì)文件
    MyTaglib.tld

    <?xml version="1.0" encoding="UTF-8" ?>

    <taglib xmlns=" ?????? xmlns:xsi=" ?????? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    ?????? version="2.0">
    ????
    ?????? <description>My Taglib by JavaWorld.com.tw</description>
    ?????? <tlib-version>1.0</tlib-version>
    ?????? <jsp-version>2.0</jsp-version>
    ?????? <short-name>Mytaglib</short-name>
    ?????? <uri></uri>
    ......

    <tag>
    ???????? <description>Repeate Simple Tag</description>
    ???????? <name>Repeat</name>
    ???????? <tag-class>com.newould.taglib.RepeatSimpleTag</tag-class>
    ???????? <body-content>empty</body-content>
    ??????
    ???????? <attribute>
    ?????????? <name>count</name>
    ?????????? <required>true</required>
    ?????????? <rtexprvalue>true</rtexprvalue>
    ???????? </attribute>

    ???????? <attribute>
    ?????????? <name>fragment</name>
    ?????????? <required>true</required>
    ?????????? <fragment>true</fragment>
    ???????? </attribute>
    ?????? </tag>????
    ???
    </taglib>

    注意:<fragment>true</fragment>,一定要這樣設(shè)定fragment屬性。

    第三步:編寫Jsp網(wǎng)頁
    RepeatSimpleTag.jsp

    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ taglib uri="/WEB-INF/tlds/MyTaglib.tld" prefix="mytag" %>

    <html>
    <head>
    <title>RepeatSimpleTag.jsp</title>
    </head>
    <body>

    <h2>RepeatSimpleTag 標(biāo)簽</h2>

    <mytag:Repeat count="5" >
    <jsp:attribute name="fragment">
    重復(fù)執(zhí)行 ....<br>
    </jsp:attribute>
    </mytag:Repeat>
    </body>
    </html>

    =================================================================

    DynamicAttributes接口
    只要制作的標(biāo)簽實(shí)現(xiàn)了DynamicAttributes接口就有動態(tài)屬性的功能。
    例如:我們要做多個數(shù)的累加運(yùn)算,則AddSimpleTag標(biāo)簽就可以通過實(shí)現(xiàn)DynamicAttributes接口就可以實(shí)現(xiàn)了.

    實(shí)現(xiàn)DynamicAttributes接口,必須實(shí)現(xiàn)setDynamicAttributes()方法,此方法用來接收動態(tài)屬性.

    舉例:第一步:制作標(biāo)簽處理類

    package com.newould.taglib;

    import java.io.*;
    import java.util.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;

    public class DynamicAdd extends SimpleTagSupport implements DynamicAttributes {

    //用來接收動態(tài)屬性
    private ArrayList keys = new ArrayList();
    private ArrayList values = new ArrayList();

    public void doTag() throws JspException, IOException {

    ????? JspContext ctx = getJspContext();
    ????? JspWriter out = ctx.getOut();
    ???
    ????? float num = 0;
    ????? float sum = Float.parseFloat((String)values.get(0));
    ????? out.print(sum);
    ???
    ????? for (int i = 1 ; i < keys.size() ; i++) {
    ?????? String temp = (String)values.get(i);
    ?????? num = Float.parseFloat(temp);
    ?????? sum = sum + num;
    ?????? out.print(" + " + num);
    ????? }
    ???
    ????? out.print(" = " + sum);
    ????? ctx.setAttribute("sum", Float.toString(sum));
    ???
    }

    public void setDynamicAttribute(String uri, String name, Object value) throws JspException {
    ????? keys.add(name);
    ????? values.add(value);
    }
    }

    第二步:編寫標(biāo)簽性質(zhì)文件
    <tag>
    ???????? <description>DynamicAttribute</description>
    ???????? <name>DynAdd</name>
    ???????? <tag-class>com.newould.taglib.DynamicAdd</tag-class>
    ???????? <body-content>empty</body-content>

    ???????? <dynamic-attributes>true</dynamic-attributes>
    ?????? </tag>????

    第三步:編寫Jsp網(wǎng)頁
    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ taglib prefix="JSPBook" tagdir="/WEB-INF/tags/" %>
    <%@ taglib prefix="c" uri="

    <html>
    <head>
    <title>CH16 - DynAdd.jsp</title>
    </head>
    <body>

    <h2>Tag File 范例</h2>

    <JSPBook:DynAdd num1="111" num2="222" num3="444" >

    <jsp:attribute name="great">
    ????? <font color="red">SUM:${sum} ...</red>
    </jsp:attribute>
    <jsp:attribute name="less">
    ????? <font color="blue">SUM:${sum} ...</red>
    </jsp:attribute>
    </JSPBook:DynAdd>

    </body>
    </html>
    JSP2.0中為了簡化標(biāo)簽的復(fù)雜性,增加了制作Simple Tag的標(biāo)簽類SimpleTagSupport類。
    SimpleTagSupport類是實(shí)現(xiàn)SimpleTag接口的。它只需要實(shí)現(xiàn)一個doTag()方法即可,而不需要一堆回傳值。


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 7777久久亚洲中文字幕蜜桃| 久久精品国产亚洲AV嫖农村妇女| 亚洲欧洲免费视频| 亚洲人成电影网站色www| 国产视频精品免费视频| 在线看片无码永久免费视频| www亚洲精品少妇裸乳一区二区| 亚洲免费视频网站| 国产亚洲精品美女| 亚洲免费一级视频| 亚洲精品国产成人影院| 亚洲国产成人精品电影| 国产精品九九久久免费视频| 国产日本一线在线观看免费| 在线观看国产区亚洲一区成人 | 国产免费一区二区三区不卡| 日韩免费毛片视频| 久久久久亚洲av无码专区导航 | 国产亚洲人成网站在线观看不卡| 亚洲国产成人精品激情| 免费看一区二区三区四区| 免费的涩涩视频在线播放| 亚洲无线电影官网| xvideos永久免费入口| 性一交一乱一视频免费看| 久久亚洲一区二区| 午夜不卡AV免费| 毛色毛片免费观看| 99久久亚洲精品无码毛片| 亚洲黄片手机免费观看| 白白国产永久免费视频| 亚洲永久中文字幕在线| a毛片在线还看免费网站| 哒哒哒免费视频观看在线www| 亚洲中文无码a∨在线观看| 国产免费拔擦拔擦8X高清在线人| 国产人成免费视频| 亚洲私人无码综合久久网| 最近免费字幕中文大全视频| 亚洲男同帅GAY片在线观看| 美女被爆羞羞网站免费|