zoukankan      html  css  js  c++  java
  • 自定义jsp标签

    
    

    创建标签库描述文件(tld,添加自定义标签的配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
     3 <tlib-version>1.0</tlib-version>
     4 <jsp-version>1.2</jsp-version>
     5 <short-name>Simple Tags</short-name>
     6 <uri>/Zking</uri>
     7 
     8 <!-- 自定义标签 -->
     9 <tag>
    10 <name>h</name>
    11 <tag-class>com.zking.HTag</tag-class>
    12 <body-content>JSP</body-content>
    13 <attribute>
    14     <name>str</name>
    15    <required>false</required>
    16     <rtexprvalue>false</rtexprvalue>
    17 </attribute>
    18 </tag>
    1.1创建一个标签助手类继承 BodyTagSupport
    标签属性必须与助手类的属性对应,且要提供对应get/set方法
    package com.zking;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.BodyTagSupport;
    
    public class HTag extends BodyTagSupport{
    
        private Object object;
    
        public Object getObject() {
            return object;
        }
    
        public void setObject(Object object) {
            this.object = object;
        }
        

    doStartTag()方法是遇到标签开始会呼叫的方法,

    
    

    其合法的返回值有EVAL_BODY_INCLUDESKIP_BODY.

    
    

    EVAL_BODY_INCLUDE 表示将显示标签间的信息

    
    

    SKIP_BODY. 则不显示标签间的文字

        
        @Override
        public int doStartTag() throws JspException {
            System.out.println("标签开始");
            return EVAL_BODY_BUFFERED;
        }
          @Override
        public int doAfterBody() throws JspException {
            System.out.println("进入标签循环");
            return EVAL_BODY_AGAIN;
        }
        


     doEndTag()方法是在遇到标签结束时呼叫的方法

    
    

    其合法对返回值是EVAL_PAGESKIP_PAGE

    
    

    EVAL_PAGE 表示处理完标签后继续执行以下的网页

    
    

    SKIP_PAGE 则不处理接下来的JSP网页

    
          @Override
        public int doEndTag() throws JspException {
            System.out.println("标签结束");
            return EVAL_PAGE;
        }
          
    }
  • 相关阅读:
    mac 使用brew 安装php-redis
    thinkphp6 使用redis 实现消息队列
    Redis 桌面管理器:Another Redis Desktop Manager
    linux 查看并关闭shell脚本执行
    MySQL教程之concat以及group_concat的用法
    PHP redis 使用
    thinkphp6 command(自定义指令)
    git 使用
    linux shell中 "2>&1"含义
    linux crontab 定时任务
  • 原文地址:https://www.cnblogs.com/xmf3628/p/10959133.html
Copyright © 2011-2022 走看看