定制标记处理器

  1. 标记处理器:是一个完成标记工作的java
  2. 标记处理器的功能:
    • 可以访问标记属性、标记体
    • 可以访问页面上下文
    • 可以丛页面上下文中得到作用域属性和请求响应
  1. 定制标记处理器的类型:
    • 传统的标记处理器(JSP以前版本中的定制标记)
    • 简单的标记处理器
  2. 建立一个简单的标记处理器的步骤:
    1. 编写一个扩展SimpleTagSupport的类(javax.servlet.jsp.tagext.SimpleTagSupport)
    2. 覆盖dogTag()方法
      1. public void doTag() throws JspException, IOException
    1. 创建标记处理器的TLD文件

<taglib .....>

    <tlib-version>版本</tlib-version>

    <uri>simpleTags</uri>

     <tag>

          <description></description>

           <name>标记名</name>

           <tag-class>标记处理器的完全限定类名</tag-class>

          <body-content>empty or scriptles or tagdependet  </body-content>

      </tag>

   </taglib>

  1. 部署标记处理器和TLD
  2. 使用标记:
    1. eg:<%@ taglib  prefix="myTags"  uri="SimpleTags"  />

         <myTags:标记名>

  1. 如果标记需要有体,则需要在TLD<body-content>声明scriptles,在doTag()中添加一条语句:
    1. TLD:
      1. <body-content>scriptless</body-content>
    2. doTag()
      1. getJspBody().invoke(null);
  1. 标记处理器的生命周期:
    1. 实例化标签处理类(无参)
    2. 调用setJspContext(JspContext)方法为处理器提供PageContext的引用
    3. 如果是嵌套标记,则调用setParent(JspTag)方法
    4. 如果标记有属性,则调用属性的设置方法
    5. 如果标记的<body-content>未声明为empty,而且标记有体,则调用setJspBody(JspPrament)方法
    6. 调用doTag()方法
    7. doTag()方法完成时,销毁对象
  1. JspFrament
    • 什么是JspFramentJspFrament是表示JSP代码的一个对象
    • 存在的意义:供别人调用
    • JspFrament的功能:把标记体输出到响应
    • JspFrament中不能包含任何脚本元素
  1. SkipPageException:停止处理页面:
    1. 功能:当页面出现错误后,抛出SkipPageException前的内容还会作为响应进行输出
    2. SkipPageExceptionJspException的区别:
      1. 当页面抛出异常时:
        • JspException会产生错误页面
        • SkipPageException则不会产生错误页面,产生异常前处理的内容还会被正常响应输出
    1. SkipPageException只停止直接调用标记的页面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值