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

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

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

    應用,一定要應用

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      25 Posts :: 0 Stories :: 118 Comments :: 0 Trackbacks

    2004-12-03

    JSP/XML/JSTL

    Jsp xml 的合作

    l???????? 方式 1 第一個大的趨勢就是以 XML 技術為前端顯示層或者是后端數(shù)據層

    JSP/JMS/Servlet/EJB J2EE 技術為中間處理層

    XML 技術充當數(shù)據層

    l???????? JSP 技術與 XML 技術集成的另一個趨勢就是所謂的 Tag Libraries JSP 程序中的大規(guī) 模應用。

    Jsp taglib

    Tag 引用:

    JSP 程序的運行原理根據 JSP1.2 規(guī)范的描述 JSP 程序的運行可以分為這樣的幾個步驟:

    1、parsing,即jsp進行xml化,如:

    ?????? 將會被替換為

    2 validation, 驗證自定義 tag 是否存在

    3 translation, 被翻譯為一個 servlet à HttpJspPage à JspPage à Servlet( à 表示繼承 )

    4 excution, 編譯執(zhí)行。

    taglib 編寫:

    第一步:建立 tag 文件:建立一個 tag.

    第二步:設計 tag 的各種屬性。

    第三步:編寫 tagclass teiclass

    第四步:編寫 jsp 測試。

    Jsp tld 文件標志介紹:

    1、? jstl 是支持事件的,可以編寫 listener, 定義在 taglib 部分。

    2、? tag 標記中的 teiclass 指定此 Tag TagExtraInfo tei 即是 Tag Extra Info 三個打頭字母的縮寫利用 TagExtraInfo ( 基類為 javax.servlet.jsp.tagext.TagExtraInfo 實際中必須覆蓋這個類 ) 可以獲取一些關于 Tag 的額外信息

    3、?? bodycontent: bodycontent 指定在 Tag 對之間可以包含的內容的類型比如在 標記與 標記與 標記之間可以包含哪些類型的內容這是由 bodycontent 決定的 bodycontent 可以取以下值 tagdependent, JSP, empty.

    4、?? tagdependent 標記體內的內容將被送到 Tag Handler 中賦給 Tag 標記體內的內容可以為空。

    5、? JSP 標記體內的內容可以是 JSP 代碼段也可以是普通的文本用于往客戶端輸出也可以是空值

    6、?? empty 標記體內不能含有任何內容

    7、?? rtexprvalue 指定 Tag 某個屬性的值是否可以通過 JSP 代碼段動態(tài)生成可以使用的值為 false true yes no 缺省值為 false 在本例中 jspFile 的值可以由 JSP 代碼動態(tài)生成。

    8、? attribute type 指定 Tag 某個屬性的 Java 類型, 缺省值為 java.lang.String

    9 jsptag 可以引起循環(huán)。

    tag 執(zhí)行過程介紹:

    1、?? doStartTag()

    l???????? EVAL_BODY_TAG 其意義是使得 JSP 引擎繼續(xù)執(zhí)行這個標記并輸出執(zhí)行結果

    l???????? SKIP_BODY jsp 引擎將忽略這個 tag 后部分的執(zhí)行。

    2、?? InitBody() 初始化 Tag Body ,沒有任何返回值。

    3、?? doAfterBody() 這個方法緊接著 doInitBody() 方法執(zhí)行這是一個自調用式的方法。

    l???????? SKIP_BODY 當它的返回值為 SKIP_BODY JSP 引擎將跳出對這個 Tag 的執(zhí)行執(zhí)行 Tag 后面的內容

    l???????? EVAL_BODY_TAG 如果 doAfterBody() 方法的返回值為 EVAL_BODY_TAG 那么 JSP 引擎會自動調用 doAfterBody() 方法直至返回值不是 EVAL_BODY_TAG JSP 引擎才會跳出這個執(zhí)行循環(huán)

    4、?? doEndTag()

    l???????? SKIP_PAGE 如果是這樣的話那么 Tag 后面的所有內容都將被 JSP 引擎自動跳過

    l???????? EVAL_PAGE doEndTag() 方法的返回值也有可能為 EVAL_PAGE 如果是這樣的話那么 JSP 引擎會繼續(xù)執(zhí)行該 Tag 后面的值

    5、?? release()

    注解: release() 方法 doEndTag() 方法無論在什么時候都將被執(zhí)行 ,哪怕d oStartTag() 方法或者 doAfterBody() 方法的返回值為 SKIP_BODY 那么這兩個方法的后面各步都沒有機會被執(zhí)行 JSP 引擎自動把它們跳過了例如當 doStartTag() 方法的返回值為 SKIP_BODY 時那么 doInitBody() 方法 doAfterBody() 方法方法都不會被執(zhí)行。

    Tag 常量:

    Tag 接口中定義了四個: EVAL_BODY_INCLUDE Tag 的執(zhí)行結果合并到某個輸出流中只有 doStartTag() 方法才有可能返回這個值如果 Tag Handler 擴展了 BodyTag 接口那 doStartTag () 方法不能夠返回這個值。

    類和接口:

    開發(fā)接口:

    Tag接口和TagSupport類:

    BodyTag接口和BodyTagSupport類:

    定義信息:

    TagInfo和TagExtraInfo類:

    TagLibaryInfo和TagAttributeInfo類:


    其他來自網絡上的內容:

    定義變量: ?
    ??
    ????id
    ????database.BookDetails
    ????true
    ????AT_BEGIN
    ??

    定義 TEI

    定義 TEI 和定義變量的作用其實是一樣的,提供一些可供 jsp script 使用的變量而已,只是這個可以更加的靈活方便一些而已。 GetVaraibleInfo 接口。

    posted on 2006-08-24 17:15 flyffa 閱讀(1514) 評論(0)  編輯  收藏 所屬分類: 讀書
    主站蜘蛛池模板: 亚洲人成7777影视在线观看| 亚洲国色天香视频| 久久久久亚洲爆乳少妇无 | 含羞草国产亚洲精品岁国产精品| 美女黄频免费网站| 久久久高清日本道免费观看| 精品国产亚洲一区二区三区在线观看 | 日本一道高清不卡免费| 亚洲国产精品人人做人人爽| 无码乱人伦一区二区亚洲| 亚洲日本乱码卡2卡3卡新区| 一个人免费观看日本www视频| 91在线老王精品免费播放| 免费看国产精品麻豆| 亚洲黄色三级网站| 老司机午夜在线视频免费观| 亚洲国产成人精品无码久久久久久综合 | 国产精品免费视频网站| 亚洲精品成人图区| 中国videos性高清免费| 成年女人免费v片| 香蕉蕉亚亚洲aav综合| av无码久久久久不卡免费网站| 亚洲日韩国产精品乱| 亚洲一卡2卡3卡4卡5卡6卡| 免费无码又爽又刺激高潮视频| 丁香亚洲综合五月天婷婷| 亚洲一区电影在线观看| 无码A级毛片免费视频内谢| 亚洲国产综合精品| 亚洲国产成人精品女人久久久| 免费观看成人久久网免费观看| 在线观看亚洲av每日更新| 精品久久久久亚洲| 亚洲精品韩国美女在线| 一个人免费高清在线观看| 亚洲日韩区在线电影| 免费国产成人午夜在线观看| 亚洲国产成人超福利久久精品| 日产乱码一卡二卡三免费| 久久久久免费精品国产|