当前位置:首页 > 开发 > 编程语言 > JSP > 正文

jsp自制标签步骤

发表于: 2015-04-11   作者:永夜-极光   来源:转载   浏览:
摘要: 1.创建一个web项目 2.在webroot/web-inf下面创建一个普通文件,文件名扩展名为 tld,例如 mytag.tld 3.在tld文件中编写代码,例子如下, <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com

1.创建一个web项目

2.在webroot/web-inf下面创建一个普通文件,文件名扩展名为 tld,例如 mytag.tld

3.在tld文件中编写代码,例子如下,

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">
    
    
      <tlib-version>1.1</tlib-version>
        <short-name>my</short-name>
         <uri>http://mytag.s1.tag</uri><!-- 随便定义 -->
         
         <tag> 
           <name>date</name>
           <tag-class>s1.Tag</tag-class>   <!-- tag标签的实现类 -->
           <body-content>empty</body-content>
           </tag>
           
           <tag>
           <name>readFile</name>
           <tag-class>s1.TagReadFile</tag-class>
                     <body-content>empty</body-content>   
           
           <attribute>
                <name>file</name>
                <required>true</required> 
                <rtexprvalue>true</rtexprvalue>
                <type>java.lang.String</type>      
           </attribute>
 
           </tag>
    
    </taglib>

 

4.上面的代码解释如下:

   4.1 固定格式的头部(别忘了taglib有结束标签)

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">

   

4.2 <tlib-version>1.1</tlib-version> // 自定义标签的版本号

        <short-name>my</short-name>  //推荐的缩写,影响不大

 <uri>http://mytag.s1.tag</uri>          //定位标签库的位置,在jsp页面中通过这个关联标签库

 <tag>     //定义一个标签     

 <name>readFile</name>  //标签的名称

 <tag-class>s1.TagReadFile</tag-class>   标签的实现类,标签本身没用,一定要有一个类来执行相应的功能

 <body-content>empty</body-content>     一般是empty 

 

<attribute>
                <name>file</name>                         //属性名
                <required>true</required>              //属性是否必须设置
                <rtexprvalue>true</rtexprvalue>     //运行时的值
                <type>java.lang.String</type>         //属性的值属于什么类
           </attribute>

 

 5.创建一个class文件,专门用来实现标签的功能

6.实现SimpleTag 接口,并继承所有的方法

public class Tag implements SimpleTag{ 

 

 7.在setJspContext()方法中将传入的pageContext对象缓存

 

public void setJspContext(JspContext jc) {
  this.pageContext=(PageContext)jc;
  //就是传入网页的 PageContext对象,拿到这个对象之后,就可以执行之后的操作
   }

 

8. 在dotag()方法中执行所有的操作

 public void doTag() throws JspException, IOException {
  //这里就是标签要执行的代码  
  
 }

 

9.完整实例代码如下:

package s1;

import java.io.IOException;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.JspTag;
import javax.servlet.jsp.tagext.SimpleTag;

public class Tag implements SimpleTag{
	
	private PageContext pageContext=null;
	
	public void setJspContext(JspContext jc) {
		this.pageContext=(PageContext)jc;
		//就是传入网页的 PageContext对象,拿到这个对象之后,就可以执行之后的操作
		SimpleDateFormat sm=new SimpleDateFormat("yyyy-mm-dd  hh:mm:ss");
		String date=sm.format(new Date());
		try {
			pageContext.getOut().print(date);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
    public static void main(String[] args){
    	
    	
    }

	public void doTag() throws JspException, IOException {
		//这里就是标签要执行的代码
		System.out.println("doTag()");
		
		
	}

	public JspTag getParent() {
		System.out.println("getParent()");
		return null;
	}

	public void setJspBody(JspFragment arg0) {
		System.out.println("setJspBody()");
		
	}

	public void setParent(JspTag arg0) {
		System.out.println("setParent()");
		
	}
}

 

jsp自制标签步骤

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
声明: 我是个新手,文章中有什么写得不正确的欢迎大家指出。共同学习,一起进步。 首先明白:自制标
自定义标签步骤 下图详细描述了自定义标签所要经过的步骤
一 . JSP标签体系 二 . 标签的执行流程: 三.自定义标签; 3.1 自定义标签的主要作用:移除jsp中的jav
一 . JSP标签体系 二 . 标签的执行流程: 三.自定义标签; 3.1 自定义标签的主要作用:移除jsp中的jav
一 . JSP标签体系 二 . 标签的执行流程: 三.自定义标签; 3.1 自定义标签的主要作用:移除jsp中的jav
效果预览: 实现代码: 分页标签处理类: package ln.ydc.blog.web.tag.myjsp; import java.io.IOEx
  同JSP标签一样,自定义标签主要用于移除JSP页面中的Java代码,可以看到我们在JSP中其实是禁止使
已经好久没有写博客了,这段时间看过很多书,包括《浪潮之巅》(好书,推荐大家看看),《暗时间》
首先我们需要大致了解开发自定义标签所涉及到的接口与类的层次结构(其中SimpleTag接口与SimpleTagSu
转载 http://www.ibm.com/developerworks/cn/java/j-lo-jsp2tag/index.html?ca=drs- 在 JSP1.1 规范
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号