zoukankan      html  css  js  c++  java
  • 创建自定义标签库

    调用过程

    1.创建一个自定义tag类实现Tag接口

    package cn.lonecloud.tag;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.PageContext;
    import javax.servlet.jsp.tagext.Tag;
    /**
     * 自定义标签库继承与Tag
     * @Title: SelfTag.java
     * @Package cn.lonecloud.tag
     * @Description: 
     * @author lonecloud
     * @date 2016年10月18日 下午4:21:51
     */
    public class SelfTag implements Tag{
    	
    	private Tag parent;
    	
    	private PageContext context;
    	
    	@Override
    	public int doEndTag() throws JspException {
    		return SKIP_BODY;
    	}
    	/**
    	 * 在这个方法中写你需要的东西
    	 */
    	@Override
    	public int doStartTag() throws JspException {
    		JspWriter out = context.getOut();
    		try {
    			out.print("我是标签");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return EVAL_PAGE;
    	}
    
    	@Override
    	public Tag getParent() {
    		return parent;
    	}
    
    	@Override
    	public void release() {
    		
    	}
    
    	@Override
    	public void setPageContext(PageContext context) {
    		this.context=context;
    		
    	}
    
    	@Override
    	public void setParent(Tag parent) {
    		this.parent=parent;
    	}
    
    }
    

     再WEB-INF下面建立一个taglib.tld的标签描述文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
     5     <tlib-version>1.0</tlib-version>
     6     <!-- 声明首选的短名字 -->
     7     <short-name>taglib</short-name>
     8     <!-- 引入url -->
     9     <url>http://www.loneclud.cn/SelfTag</url>
    10     <!-- 所选功能的类 -->
    11     <tag>
    12         <name>self</name><!-- taglib:self -->
    13         <tagclass>cn.lonecloud.tag.SelfTag</tagclass><!-- 实现类名 -->
    14         <bodycontent>JSP</bodycontent><!--配置JSP才有效  -->
    15     </tag>
    16 </taglib>

    在web.xml下进行申明

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     6     <!-- 在Web.xml下进行申明 -->
     7     <jsp-config>
     8         <taglib>
     9             <taglib-uri>http://www.loneclud.cn/SelfTag</taglib-uri>
    10             <taglib-location>/WEB-INF/taglib.tld</taglib-location>
    11         </taglib>
    12     </jsp-config>
    13     <display-name>Archetype Created Web Application</display-name>
    14 </web-app>

    在jsp页面中引入

    <%@ taglib uri="http://www.loneclud.cn/SelfTag" prefix="taglib"%>
    

     使用

    <taglib:self></taglib:self>
    

     dostartTag中如果选择的是SKIP_BODY则其里面的xmlbody内部不在输出

    doEndTag中SKIP_PAGE则是其后面的内容不输出

  • 相关阅读:
    Kotlin入门(20)几种常见的对话框
    Kotlin入门(19)Android的基础布局
    Kotlin入门(18)利用单例对象获取时间
    Kotlin入门(17)等式判断的情况
    Kotlin入门(16)容器的遍历方式
    Kotlin入门(15)独门秘笈之特殊类
    Android Studio Gradle被墙bug总结
    unity常用的坐标系转换
    欧拉角与万向节死锁
    Unity导出Gradle工程给Android Studio使用
  • 原文地址:https://www.cnblogs.com/lonecloud/p/5973863.html
Copyright © 2011-2022 走看看