当前位置:  编程技术>java/j2ee

jsp 定制标签(Custom Tag)

    来源: 互联网  发布时间:2014-10-17

    本文导语:  怎样自己定制标签(Custom Tag) (整理的学习笔记) 步骤1、创建一个Tag handler class(标记处理器类) package javax.servlet.jsp.tagext 开发空Body的标签处理器类----->1)implements Tag 2)extends TagSupport 空Body的标签处理器类需要覆盖方法: doStartTag() ...

怎样自己定制标签(Custom Tag)
(整理的学习笔记)
步骤1、创建一个Tag handler class(标记处理器类)
package javax.servlet.jsp.tagext
开发空Body的标签处理器类----->1)implements Tag 2)extends TagSupport
空Body的标签处理器类需要覆盖方法:
doStartTag()
返回值:Tag.SKIP_BODY
doEndTag()
返回值:
1)Tag.EVAL_PAGE:让标签下面的内容继续执行
2)Tag.SKIP_PAGE:让标签下面的内容不执行
开发带Body的标签处理器类----->1)implements BodyTag 2)extends BodyTagSupport
带Body的标签处理器类需要覆盖方法
doStartTag()
返回值:
BodyTag.SKIP_BODY:执行后直接调用doEndTag()方法
BodyTag.EVAL_BODY_INCLUDE:执行后直接调用doAfterBody()方法
BodyTag.EVAL_BODY_BUFFERED:
doEndTag()
返回值:
BodyTag.EVAL_PAGE:标签下面的内容继续执行
BodyTag.SKIP_PAGE:标签下面的内容不执行
doAfterBody()
返回值:
BodyTag.SKIP_BODY:执行后调用doEngTag()方法
BodyTag.EVAL_BODY_AGAIN:执行后调用doAfterBody()方法
步骤2、创建一个tld文件(tag library descriptor)
一个XML格式的文件,用于对标记进行描述
通常放在WEB-INF目录下 (/WEB-INF/*.tld)
abc.tld




1.0
1.2
tagSample
/tagSample
A blank tag library template.

welcome
tagapp.HelloTag
empty
my first tag




name
true
true
java.lang.String



步骤3.创建一个JSP文件


...

uri的值可以是:
A、/WEB-INF/mytag.tld -----> uri="/WEB-INF/mytag.tld"
B、tld文件中 /tagSample ------> uri="/tagSample"
C、利用web.xml文件映射tld文件与taglib-uri的值 -----> uri="/abc"

/abc
/WEB-INF/mytag.tld

带Body的标签处理器类的方法的注释:
doStartTag()
return value: SKIP_BODY 空BODY标记
EVAL_BODY_INCLUDE 带BODY标记,执行流程进入doAfterBody
EVAL_BODY_BUFFERED 带BODY标记,执行流程进入setBodyContent
doEndTag()
return value: SKIP_PAGE 忽略标记后剩余的JSP内容
EVAL_PAGE 继续执行标记后剩余的JSP内容
doAfterBody()
return value: SKIP_BODY 结束doAfterBody()方法,流程进入doEndTag()
EVAL_BODY_AGAIN 继续执行doAfterBody()方法
SimpleTagSupport
较好的练习题:
一、
1、模仿jstl标签库开发下列标签:
1)
属性有:
driver:必须的,可以用表达式
url;必须的,可以用表达式
user:必须的,可以用表达式
password:必须的,可以用表达式
2)
属性有:
dataSource:必须的,可以用表达式
sql:必须的,可以用表达式
3)
属性有:
dataSource:必须的,可以用表达式
sql:必须的,可以用表达式
2、开发类似于的标签,可以遍历一个集合对象(可选,如不能完成,可直接利用jstl的标签来完成)

    
 
 

您可能感兴趣的文章:

  • (SOS 在线等待,马上给分)请看看定制JSP TagLib的问题,为什么说设有setter
  • 用定制标签库和配置文件实现对JSP页面元素的访问控制
  • 在写自定义标签时,如何得到引用当前标签的jsp文件名呢?
  • 使用JSP扩展标签,可否从标签内得到一个输出参数?
  • JSP表格标签库 WebJMX
  • 请高手指点,怎样学习JSP标签库,一定给分,不够在加!
  • JSP标签库 Coldtags
  • JSP 标签库集合 Taglibs
  • Google地图JSP标签库
  • JSP 标准标签库 JSTL
  • JSP标签 Noka Tag
  • JSP标签库 AjaxTags
  • JSP加密标签库 JCE taglib
  • jsp自定义标签之ifelse与遍历自定义标签示例
  • 如何在html标签的属性里引用一个jsp变量
  • jsp 常用标签的使用
  • 简单!如果网页的内容为HTML标签和JAVASCRIPT代码,那应该将该文件保存为.jsp还是
  • 一个关于JSP自定义标签的问题.急!!!
  • JSP 自定义标签第1/3页
  • JSP分页标签库 Pager Tag Library
  • JSP分页标签库 Pager-taglib
  • 在编译使用扩展标签的java文件时,得到package javax.servlet.jsp does not exist,package javax.servlet.jsp does not exist的错误
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • JSP中清空cookie代码参考
  • 现有1.jsp、2.jsp、3.jsp三个文件,我怎么在3.jsp文件中得到1.jsp中输入的值?
  • 一个框界网爷包含上下两个网页a1.jsp和a2.jsp,怎么实现a1.jsp自身不变且提交数据到下面的a2.jsp呢?不胜感激,急..
  • 请问jsp和serlet之间怎么通讯,jsp和jsp之间呢?
  • 请问<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别
  • response.sendRedirect("index.jsp") 和 <jsp:forward page="index.jsp"/>的区别?
  • 想把一个jsp转到另一个jsp页面,要穿参数,中文的(jsp变量)。谁教教我?!
  • aaa.jsp有如下链接,当单击该链接时将id值传递给bbb.jsp,怎样在bbb.jsp中引用这个id值?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • 谁能告诉我,怎么调试jsp程序呀!我在jsp中调用java,但是Tomcat这家伙只会给我报jsp文件出错。这可怎么办呀?
  • jsp中如何获得当前jsp文件所在的目录,用request.getServletPath()得到的路径含有jsp文件名,有没有办法得到目录(不含文件名)?
  • 初学jsp,一个html调用一个jsp,这个jsp调用一个javaBean,已编译成类,最后如何部署(用j2sdkee)?
  • 我要学jsp,已经下载了j2ee1.4,需要一个支持jsp引擎的WEB服务器或jsp引擎!!(急,马上给分)
  • jsp中相对路径怎么表示?例如当前目录下的jsp目录里的文件。
  • 我已经在输出前包含了<jsp:include page="2.jsp"/>,
  • 欲学JSP,请教JSP资料,最好电子版。
  • jsp中文乱码 jsp mysql 乱码的解决方法
  • jsp+JavaBean vs jsp+Servlet+JavaBean
  • JSP/html 编辑器 Bravo JSP editor
  • JSP开发入门(五)--JSP其他相关资源
  • <jsp:include page="SystemLeft.jsp?TypeId=<%= itTypeId.toString() %>" flush="true" />


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3