首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 【读书】jsp高级编程-jsptaglib
【标  题】:【读书】jsp高级编程-jsptaglib
【关键字】:jsp,-jsptaglib
【来  源】:http://www.blogjava.net/flyffa/archive/2006/08/24/65580.html

【读书】jsp高级编程-jsptaglib

【读书】jsp高级编程-jsptaglib - 应用,一定要应用 - BlogJava
BlogJava 首页 新随笔 联系 聚合 管理
  17 Posts :: 0 Stories :: 12 Comments :: 0 Trackbacks

2004-12-03

JSP/XML/JSTL

Jsp xml 的合作

l???????? 方式 1 第一个大的趋势就是以 XML 技术为前端显示层或者是后端数据层

JSP/JMS/Servlet/EJB J2EE 技术为中间处理层

XML 技术充当数据层

l???????? JSP 技术与 XML 技术集成的另一个趋势就是所谓的 Tag Libraries JSP 程序中的大规 模应用。

Jsp taglib

Tag 引用:

JSP 程序的运行原理根据 JSP1.2 规范的描述 JSP 程序的运行可以分为这样的几个步骤:

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

?????? 将会被替换为

2 validation, 验证自定义 tag 是否存在

3 translation, 被翻译为一个 servlet à HttpJspPage à JspPage à Servlet( à 表示继承 )

4 excution, 编译执行。

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 代码段动态生成可以使用的值为 false true yes no 缺省值为 false 在本例中 jspFile 的值可以由 JSP 代码动态生成。

8、? attribute type 指定 Tag 某个属性的 Java 类型, 缺省值为 java.lang.String

9 jsptag 可以引起循环。

tag 执行过程介绍:

1、?? doStartTag()

l???????? EVAL_BODY_TAG 其意义是使得 JSP 引擎继续执行这个标记并输出执行结果

l???????? SKIP_BODY jsp 引擎将忽略这个 tag 后部分的执行。

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

3、?? doAfterBody() 这个方法紧接着 doInitBody() 方法执行这是一个自调用式的方法。

l???????? SKIP_BODY 当它的返回值为 SKIP_BODY JSP 引擎将跳出对这个 Tag 的执行执行 Tag 后面的内容

l???????? EVAL_BODY_TAG 如果 doAfterBody() 方法的返回值为 EVAL_BODY_TAG 那么 JSP 引擎会自动调用 doAfterBody() 方法直至返回值不是 EVAL_BODY_TAG JSP 引擎才会跳出这个执行循环

4、?? doEndTag()

l???????? SKIP_PAGE 如果是这样的话那么 Tag 后面的所有内容都将被 JSP 引擎自动跳过

l???????? EVAL_PAGE doEndTag() 方法的返回值也有可能为 EVAL_PAGE 如果是这样的话那么 JSP 引擎会继续执行该 Tag 后面的值

5、?? release()

注解: release() 方法 doEndTag() 方法无论在什么时候都将被执行 ,哪怕d oStartTag() 方法或者 doAfterBody() 方法的返回值为 SKIP_BODY 那么这两个方法的后面各步都没有机会被执行 JSP 引擎自动把它们跳过了例如当 doStartTag() 方法的返回值为 SKIP_BODY 时那么 doInitBody() 方法 doAfterBody() 方法方法都不会被执行。

Tag 常量:

Tag 接口中定义了四个: EVAL_BODY_INCLUDE Tag 的执行结果合并到某个输出流中只有 doStartTag() 方法才有可能返回这个值如果 Tag Handler 扩展了 BodyTag 接口那 doStartTag () 方法不能够返回这个值。

类和接口:

开发接口:

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 阅读(115) 评论(0)  编辑 收藏 收藏至365Key 所属分类: 读书
项目实施总结:【上一篇】
【读书】设计模式-行为型模式:【下一篇】
【相关文章】
  • jsp参考(一) 动作元素[action]
  • jsp参考(二) 注释元素[comment]
  • jsp参考(三) 指令元素[directive]
  • jsp参考(四) 脚本元素[scriptlet]
  • apache22和resin3实现jsp功能
  • 部署于 Tomcat 服务器的 JSP 查错步骤
  • JSP访问(读写)Mysql数据库及乱码处理
  • JSP应用语法详解大全 (1)
  • JSP应用语法详解大全 (2)
  • JSP应用语法详解大全 (3)
  • 【随机文章】
  • FreeBSD gnome安装笔记
  • 安装JDK并配置开发环境
  • 一个简单的IMAP类和应用
  • VB设计VCD播放器
  • INSERT 失败,因为下列 SET 选项的设置不正确: 'ARITHABORT'
  • 使用标准的KNI增加KVM的系统调用
  • Oracle9i的物理内存管理
  • Linux 常用網路指令介紹
  • Could not find the main class. Program will exit
  • SLES FAQ -- Grub serial setup
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.