`

JSP 自定义标签 BodyTagSupport

阅读更多
自定义标签分成4部
[red]1. 创建tld文件,在WEB-INFO文件夹下创建tld文件夹,在tld文件夹下创建util.tld文件,内容如下:[/red]
<?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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"   
     version="2.0">   
     <tlib-version>1.0</tlib-version>   
     <short-name>util</short-name>   
     <uri>http://langhua.com/taglib/util</uri>   
     <tag>
     <name>ctl</name>
     <tag-class>com.test.tag.CtlTag</tag-class>
     <body-content>JSP</body-content>
     <attribute>
     <name>code</name>
     <required>true</required>
     <rtexprvalue>true</rtexprvalue>
     </attribute>
     </tag>
</taglib>   

[red]2.修改web.xml文件[/red]
<jsp-config> 
    <taglib> 
      <taglib-uri>util</taglib-uri> 
      <taglib-location>/WEB-INF/tld/util.tld</taglib-location> 
    </taglib> 
  </jsp-config>

[red]3. 创建类com.test.tag.CtlTag[/red]
package com.test.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class CtlTag extends BodyTagSupport {

private String code ;

public int doAfterBody() {
System.out.println("----------doAfterBody------------");
BodyContent bodyContent = getBodyContent() ;
String html = bodyContent.getString() ;
JspWriter out = bodyContent.getEnclosingWriter();
if(code.equals("show")){
try {
out.println(html);
} catch (IOException e) {
e.printStackTrace();
}
}
return SKIP_BODY;
}

@Override 
    public int doEndTag() throws JspException { 
        System.out.println("---------doEndTag()----------"); 
        return super.doEndTag(); 
    } 
 
    @Override 
    public void doInitBody() throws JspException { 
        System.out.println("---------doInitBody()----------"); 
        super.doInitBody(); 
    } 
 
    @Override 
    public int doStartTag() throws JspException { 
        System.out.println("---------doStartTag()----------"); 
        return super.doStartTag(); 
    } 
   
   
public String getCode() {
return code;
}

public void setCode(String code) throws JspException {
//ExpressionEvaluatorManager.evaluate("code", code.toString(), Object.class, this, pageContext);
this.code = code ;
}

}
[red]4. 在JSP页面中引用[/red]
<%@ taglib prefix="util" uri="http://langhua.com/taglib/util"%>   
Weather it can be shown below :

<util:ctl code="show"><input id="test" name="test" type="button" value="Button" onclick="alert(232232323);" /></util:ctl>
完成
分享到:
评论

相关推荐

    jsp自定义标签中的困扰

    JSP自定义标签过程中会出现许多的问题,尤其是没有相应课题的专门书籍的时候.我在通过继承BodyTagSupport类来做标签的时候。出现了许多问题,我把这些问题归纳起来,希望能帮助到某些人。

    struts2自定义标签案例详解

    这里在实现自定义标签时,继承的2个类分别是org.apache.struts2.views.jsp.ComponentTagSupport和org.apache.struts2.components.Component,ComponentTagSupport实际上是对BodyTagSupport的一次封装,看一下...

    利用BodyTagSupport创建带标签体的自定义标签

    利用BodyTagSupport创建带标签体的自定义标签

    jsp java自定义标签 实现分页 当前位置标签

    通过BodyTagSupport实现了自定义的标签,主要实现功能为分页技术以及当前功能点所在位置。

    JSP自定义标签案例分析

    本文为大家介绍了JSP自定义标签的案例,供大家参考,具体内容如下 案例一:实现一个基本防盗链标签 1. 标签处理类 public class MyReferer extends BodyTagSupport { private String site; private String back; ...

    jsp通过自定义标签库实现数据列表显示的方法

    本文实例讲述了jsp通过自定义标签库实现数据列表显示的方法。分享给大家供大家参考,具体如下: 1. 定义标签库类 UserListTag.java package com.yanek.cms.tag; import java.io.IOException; import java.util....

    自定义标签

    通过extends BodyTagSupport实现自定义标签的代码实例;通过implements Tag实现自定义标签的代码实例

    在jsp中使用自定义taglib

    一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发...

    javax.servlet.jsp.tagext源码

    TagSupport SimpleTagSupport tagext javax servlet jsp Tag 标签

    JSP/Servlet

    BodyTagSupport 類別 自訂標籤屬性 自訂動態標籤屬性 SimpleTagSupport 類別(&lt;jsp:attribute&gt;) Scripting Variable Tag File Tag File是從JSP 2.0開始新增的功能,主要的目的是讓撰寫JSP網頁的網頁設計人...

    java web 视频、电子书、源码(李兴华老师出版)

    0312_JSP标签编程 0313_JSP标准标签库(JSTL) 0314_AJAX开发技术 0400_第四部分:框架开发 0415_Struts基础开发 0416_Struts常用标签库 0417_Struts高级开发 0500_第五部分:附录 0518_附录A:实用工具 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、...

    李兴华Java Web开发实战经典(高清版) Part2

    第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义有属性的标签 12.4、TagSupport类 12.5、定义有标签体的标签库 12.6、开发迭代标签 12.7、BodyTagSupport类 ...

    可伪可不伪的分页标签

    import javax.servlet.jsp.tagext.BodyTagSupport; public class FenyeTag extends BodyTagSupport { private static final long serialVersionUID = 1L; private String html; private String exname; ...

Global site tag (gtag.js) - Google Analytics