• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于JSP 自定义标签使用实例介绍

    添加JSP自定义标签:

    先添加一个tld文件到WEB-INF文件夹中
    ?xml version="1.0" encoding="UTF-8" ?>
    taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    version="2.0">

    description>myTag/description>
    display-name>JSTL core/display-name>
    tlib-version>1.0/tlib-version>
    short-name>cnweb/short-name>
    uri>http://www.cnweb.cn/uri>

    tag>!-- 一个tag标签对应一个自定义tag标签类 -->
    description>MyTag/description>
    name>when/name>
    tag-class>cn.example.when/tag-class>
    body-content>scriptless/body-content>
    attribute>
    name>test/name>
    required>true/required>
    rtexprvalue>true/rtexprvalue>
    /attribute>
    /tag>
    /taglib>
    引用规则:
    %@ taglib uri="http://www.cnweb.cn" prefix="cnweb"%>

     定义错误处理页面:

    error-page>
    exception-type>java.lang.Exception/exception-type>
    location>/errors/error.jsp/location>
    /error-page>
    error-page>
    error-code>404/error-code>
    location>/errors/error1.jsp/location>
    /error-page>

    自定义标签执行流程:

    SimpleTagSupport

    /* Jsp引擎遇到简单类,实例化该类;
    * 调用setJspContext,把页面pageContext传递给标签处理类;
    * 调用setParent把父标传递进去,如果没有,传递null
    * 调用setJspBody方法,把封装了标签体JspFragment传递给标签处理器类
    * 执行页面中的自定义标签,doTag()方法;-->执行完成,销毁对象
    */

    JspFragment jf = this.getJspBody();
    jf.invoke(this.getJspContext().getOut());//如果不显示则不进行处理

    --------------------------------------------------------------------

    public class tagShowOrNot extends TagSupport {
    public int doStartTag() throws JspException {
    return Tag.EVAL_BODY_INCLUDE;//显示body
    //return Tag.SKIP_BODY;//隐藏body
    //Tag.EVAL_PAGE;//显示page
    //Tag.SKIP_PAGE;//隐藏page
    }} 

    TagSupport
    /*编写一个实现TagSupport的类;
    *在tld文件中对标签处理器类进行描述(tld文件的位置:WEB-INF下)
    *在jsp页面中导入和使用标签
    *
    *jsp执行过程中遇到自定义标签时,先实例化该类;
    *然后执行方法:setPageContext()-->setParent()-->doStartTag()
    *如果有标签体,一般会执行标签体;doEndTag()-->整个标签执行完后一般会执行:release()
    *
    *控制整个jsp页面是否执行;
    *控制jsp页面某一部分内容是否执行;
    *控制jsp页面内容重复执行;
    *修改jsp页面内容输出;
    */

    //该方法在执行标签体后,执行doEndTag()方法之前执行,直到该方法返回IterationTag.SKIP_BODY;
    public int doAfterBody() throws JspException {
    time--;
    System.out.println("重复" + time);
    if (time > 0) {
    return IterationTag.EVAL_BODY_AGAIN;
    } else
    return IterationTag.SKIP_BODY;
    }

    您可能感兴趣的文章:
    • jsp简单自定义标签的forEach遍历及转义字符示例
    • JSP自定义标签获取用户IP地址的方法
    • jsp自定义标签技术(实现原理与代码以及平台搭建步骤)
    • JSP自定义标签Taglib实现过程重点总结
    • JSP 自定义标签之一 简单实例
    • JSP自定义标签rtexprvalue属性用法实例分析
    • JSP自定义标签-标签属性_动力节点Java学院整理
    上一篇:在.jsp中非表单请求action的几种方式总结
    下一篇:jsp 常用标签的使用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于JSP 自定义标签使用实例介绍 基于,JSP,自定义,标签,使用,