客户化jsp标签

 Servlet容器编译jsp网页时,如果遇到自定义标签就会调用这个标签的处理类

标签处理类必须扩展以下两个类之一

-javax.servlet.tagext.TagSupport

-javax.servlet.tagxt.BodyTagSupport

doStartTag()方法

返回两个值:

Tag.SKIP_BODY表示标签之间的内容将会被hul

Tag.EVAL_BODY_INCLUDE表示标签之间的内容正常执行

doEndTag()方法

返回两个值:

Tag.SKIP_PAGE表示立刻停止执行jsp网页,网页上未被处理的静态内容和jsp程序均被忽略,

任何已输出内容立刻返回到客户的浏览器上

Tag.EVAL_PAGE表示按正常的流程执行网页

2.创建客户化jsp标签的步骤

(1)创建标签的处理类

  
  
  
  
  1. package el; 
  2.  
  3. import javax.servlet.jsp.JspException; 
  4. import javax.servlet.jsp.JspTagException; 
  5. import javax.servlet.jsp.tagext.TagSupport; 
  6.  
  7. public class taglib extends TagSupport { 
  8.  
  9.     public int doEndTag() throws JspException { 
  10.         try { 
  11.             this.pageContext.getOut().print("hello"); 
  12.         } catch (Exception e) { 
  13.             throw new JspTagException(); 
  14.         } 
  15.         return EVAL_BODY_INCLUDE;   //继续执行后续程序 
  16.     } 
  17.  
  18.     public int doStartTag() throws JspException { 
  19.         try { 
  20.             this.pageContext.getOut().print("hehhe"); 
  21.         } catch (Exception e) { 
  22.             throw new JspTagException(); 
  23.         } 
  24.         return EVAL_PAGE; 
  25.     } 
  26.  

(2)创建标签库描述文件(.tld文件)

 

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" 
  3.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee web-jsptaglibrary_2_1.xsd"> 
  4.  <tlib-version>1.0</tlib-version> 
  5.  <short-name>taglib</short-name> 
  6.  <uri>/mytaglib</uri> 
  7.  
  8.  <tag> 
  9.   <name>helo</name> 
  10.   <tagclass>el.taglib</tagclass> 
  11.   <bodycontent>empty</bodycontent> 
  12.  </tag> 
  13.   
  14. </taglib> 

(3)在jsp文件中引入标签库,然后插入标签,例如:<mm:hello/>

 

  
  
  
  
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
  2. <%@ taglib uri="/mytaglib" prefix="mm" %> 
  3.  
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  5. <html> 
  6.   <head> 
  7.    
  8.     <title>My JSP 'testEl.jsp' starting page</title> 
  9.  
  10.   </head> 
  11.    
  12.   <body> 
  13.    
  14.     <b> <mm:helo/> </b> 
  15.      
  16.   </body> 
  17. </html> 

 

你可能感兴趣的:(jsp,标签,客户化)