1. 程式人生 > >JSP 自定義標簽

JSP 自定義標簽

標簽 () odin tag library web-inf util type span

1.編寫一個實現Tag接口的標簽處理器類

 1 package cn.itcast.web.tag;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.jsp.JspException;
 7 import javax.servlet.jsp.JspWriter;
 8 import javax.servlet.jsp.PageContext;
 9 import javax.servlet.jsp.tagext.Tag;
10 11 public class ViewIPTag implements Tag { 12 13 private PageContext pageContext; 14 15 public int doEndTag() throws JspException { 16 // TODO Auto-generated method stub 17 return 0; 18 } 19 20 public int doStartTag() throws JspException { 21 // TODO Auto-generated method stub
22 23 HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); 24 JspWriter out = pageContext.getOut(); 25 26 String ip = request.getRemoteAddr(); 27 try { 28 out.write(ip); 29 } catch (IOException e) { 30 // TODO Auto-generated catch block
31 32 throw new RuntimeException(e); 33 } 34 35 return 0; 36 } 37 38 public Tag getParent() { 39 // TODO Auto-generated method stub 40 return null; 41 } 42 43 public void release() { 44 // TODO Auto-generated method stub 45 46 } 47 48 public void setPageContext(PageContext arg0) { 49 // TODO Auto-generated method stub 50 51 this.pageContext = arg0; 52 } 53 54 public void setParent(Tag arg0) { 55 // TODO Auto-generated method stub 56 57 } 58 59 }

2.在/WEB-INF/目錄下新建tld文件,在tld文件中對標簽處理器進行描述

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
 6     version="2.0">
 7     <description>A tag library exercising SimpleTag handlers.</description>
 8     <tlib-version>1.0</tlib-version>
 9     <short-name>SimpleTagLibrary</short-name>
10     <uri>/itcast</uri>
11 
12     <tag>
13         <name>viewIP</name>
14         <tag-class>cn.itcast.web.tag.ViewIPTag</tag-class>
15         <body-content>empty</body-content>
16     </tag>
17     
18 </taglib>

3.在JSP頁面中導入並使用自定義標簽

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@ taglib uri="/itcast" prefix="itcast"%>
 3 
 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 5 <html>
 6 <head>
 7 <title>My JSP ‘1.jsp‘ starting page</title>
 8 </head>
 9 
10 <body>
11 
12     你的IP地址是:
13     <itcast:viewIP />
14 
15 </body>
16 </html>

JSP 自定義標簽