客户化JSP标签

客户化JSP标签:

创建客户化JSP标签的步骤:
  1创建标签的处理类
       标签处理类必须扩展以下两个类中的一个:
            --javax.servlet.jsp.tagext.TagSupport
            --javax.servlet.jsp.tagext.BodyTagSupport
  2创建标签库描述文件  
           标签库描述文件的后缀名是:.tld  Tag Library Descriptor (是一个标准的XML文件) 必须跟web.xml文件在一个目录,也就是WEB-INF目录下
  3在JSP文件中引入标签库,然后插入标签 
     <%@ taglib uri="/myTag" prefix="hello"%> prefix是前缀的意思,代表前面的/myTag。
     <hello:firstTag />

Servlet容器编译JSP网页时,如果遇到自定义标签,就会调用这个标签的处理类,并且执行对应的方法。

doStartTag()  Servlet容器遇到自定义标签的起始标志时候调用这个方法
方法返回一个整数值,用来决定程序的后续流程。有两个可选值
   -Tag.SKIP_BODY  表示标签之间的内容被忽略
   -Tag.EVAL_BODY_INCLUDE   表示标签之间的内容被正常执行。
doEndTag()   当Servlet容器遇到自定义标签的结束标志,就会调用这个方法
-Tag.SKIP_PAGE  表示立即停止执行JSP网页,网页上未处理的静态内容和JSP程序均被忽略,任何已有的输出内容立刻返回到客户的浏览器上。
-Tag.EVAL_PAGE  表示按正常的流程
parent:代表嵌套了当前标签的上层标签的处理类
pageContext:代表Web应用中的java.servlet.jsp.PageContext对象

在标签中还能包含自定义的属性,例如:
<prefix:mytag username="zhangsan">
... ...
</prefix:mytag>
在标签处理类中应该将这个属性作为成员变量,并且分别提供set和get方法。

 

在标签处理类中,如何访问session范围内的共享数据?
  pageContext.getAttribute("attributename",PageContext.SESSION_SCOPE);
  在标签处理类TagSupport类中定义了pageContext成员变量,先通过它的getSession方法获得当前的HttpSession对象,
  再调用HttpSession对象的getAttribute方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值