JSP自定义标签开发流程
来源:互联网 发布:台湾关系法 知乎 编辑:程序博客网 时间:2024/06/04 17:52
一、概述
jsp(SUN企业级应用的首选)中有一块重要的技术:自定义标签(Custom Tag),最近这几天在学习Struts的时候发现Struts中使用了很多自定义标签,如html、bean等。所以我就做了个简单的试验,学习一下这种技术。
jsp(SUN企业级应用的首选)中有一块重要的技术:自定义标签(Custom Tag),最近这几天在学习Struts的时候发现Struts中使用了很多自定义标签,如html、bean等。所以我就做了个简单的试验,学习一下这种技术。
首先介绍一下这种技术吧!
1.优点:
取代了jsp(SUN企业级应用的首选)中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。
取代了jsp(SUN企业级应用的首选)中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。
2.开发流程:
(1) 编写jsp(SUN企业级应用的首选),在jsp(SUN企业级应用的首选)中使用自定义标签。
(1) 编写jsp(SUN企业级应用的首选),在jsp(SUN企业级应用的首选)中使用自定义标签。
(2) 在web.xml(标准化越来越近了)中指定jsp(SUN企业级应用的首选)中使用的标签的.tld(标签库描述文件)文件的位置。
(3) .tld文件中指定标签使用的类。
3. 自定义标签的分类:
(1) 简单标签:如< mytag:helloworld/>
(1) 简单标签:如< mytag:helloworld/>
(2) 带属性标签:如<imytag:checkinput dbname = “<myBean.getDBName()>”/>
(3) 带标签体的标签:
在自定义标签的起始和结束标签之间的部分为标签体(Body)。Body的内容可以是jsp(SUN企业级应用的首选)中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。
<mytag:checkinput dbname = “<myBean.getDBName()>”>
<mytag:log message=”Table Name”>
<mytag:checkinput />
(4) 可以被Script使用的标签:
定义了id和type属性的标签可以被标签后面的Scriptlet使用。
<mytag:connection id = “oraDB” type = “DataSource” name = “Oracle(大型网站数据库平台)”>
<%oraDB.getConnection(); %>
4.接口及其他
实际上,自定义标签的处理类实现了Tag Handler对象。jsp(SUN企业级应用的首选)技术在javax.servlet.jsp(SUN企业级应用的首选).tagext中提供了多个Tag Handler接口,jsp(SUN企业级应用的首选)1.2中定义了Tag、BodyTag、IterationTag接口,在jsp(SUN企业级应用的首选)2.0中新增了SimpleTag接口。jsp(SUN企业级应用的首选)还提供了上述接口的实现类TagSupport、BodyTagSupport和SimpleTagSupport(SimpleTagSupport只在jsp(SUN企业级应用的首选)2.0中才有)。BodyTagSupport实现了BodyTag、Tag和IterationTag接口。
实际上,自定义标签的处理类实现了Tag Handler对象。jsp(SUN企业级应用的首选)技术在javax.servlet.jsp(SUN企业级应用的首选).tagext中提供了多个Tag Handler接口,jsp(SUN企业级应用的首选)1.2中定义了Tag、BodyTag、IterationTag接口,在jsp(SUN企业级应用的首选)2.0中新增了SimpleTag接口。jsp(SUN企业级应用的首选)还提供了上述接口的实现类TagSupport、BodyTagSupport和SimpleTagSupport(SimpleTagSupport只在jsp(SUN企业级应用的首选)2.0中才有)。BodyTagSupport实现了BodyTag、Tag和IterationTag接口。
接口及其方法
Tag接口
方法
SimpleTag
dotage
Tag
doStartTag,doEndTag,release
IterationTag
doStartTag,doAfterTag,release
BodyTag
doStartTag,doEndTag,release,doInitBody,doAfterBody
方法
SimpleTag
dotage
Tag
doStartTag,doEndTag,release
IterationTag
doStartTag,doAfterTag,release
BodyTag
doStartTag,doEndTag,release,doInitBody,doAfterBody
下表引自Sun的jsp(SUN企业级应用的首选)在线教程。
Tag Handler Methods
Tag Handler Type
Methods
Simple
doStartTag, doEndTag, release
Attributes
doStartTag, doEndTag, set/getAttribute1...N, release
Body, Evaluation and No Interaction
doStartTag, doEndTag, release
Body, Iterative Evaluation
doStartTag, doAfterBody, doEndTag, release
Body, Interaction
doStartTag, doEndTag, release, doInitBody, doAfterBody, release
Tag Handler Type
Methods
Simple
doStartTag, doEndTag, release
Attributes
doStartTag, doEndTag, set/getAttribute1...N, release
Body, Evaluation and No Interaction
doStartTag, doEndTag, release
Body, Iterative Evaluation
doStartTag, doAfterBody, doEndTag, release
Body, Interaction
doStartTag, doEndTag, release, doInitBody, doAfterBody, release
下表中的EVAL是evaluate的缩写,意思是:评价, 估计, 求...的值,在下列的返回值中的意思是执行。
返回值
意义
SKIP_BODY
表示不用处理标签体,直接调用doEndTag()方法。
SKIP_PAGE
忽略标签后面的jsp(SUN企业级应用的首选)内容。
EVAL_PAGE
处理标签后,继续处理jsp(SUN企业级应用的首选)后面的内容。
EVAL_BODY_BUFFERED
表示需要处理标签体。
EVAL_BODY_INCLUDE
表示需要处理标签体,但绕过setBodyContent()和doInitBody()方法
EVAL_BODY_AGAIN
对标签体循环处理。
意义
SKIP_BODY
表示不用处理标签体,直接调用doEndTag()方法。
SKIP_PAGE
忽略标签后面的jsp(SUN企业级应用的首选)内容。
EVAL_PAGE
处理标签后,继续处理jsp(SUN企业级应用的首选)后面的内容。
EVAL_BODY_BUFFERED
表示需要处理标签体。
EVAL_BODY_INCLUDE
表示需要处理标签体,但绕过setBodyContent()和doInitBody()方法
EVAL_BODY_AGAIN
对标签体循环处理。
- JSP自定义标签开发流程
- 自定义JSP标签开发流程
- 自定义JSP标签的开发流程
- jsp自定义标签开发
- JSP自定义标签开发
- 【jsp】开发自定义标签
- JSP自定义标签开发
- JSP自定义标签开发
- JSP自定义标签开发
- JSP自定义标签开发
- JSP自定义标签开发
- jsp自定义标签开发
- JSP自定义标签开发
- JSP自定义标签开发
- JSP自定义标签开发
- 自定义标签的开发流程
- jsp自定义标签库开发
- jsp开发自定义标签方法
- asp.net常见问题及解决方法
- 使用 sed 编辑器
- CSS滑动门效果
- 对大量转载贴识别算法的研究
- 非接触式IC卡消费系统解决方案
- JSP自定义标签开发流程
- 50条网页制作小技巧集锦
- Visio设置(移动一个图形而整体错乱)
- div+css命名规则(转)
- CSS+DIV下的网页设计实例
- sql随机数
- 用层(DIV)来实现弹出窗口
- [转贴]一个有趣的布局
- 通过BLOG传下图片