1. 程式人生 > >java_自定義標簽,我的第一個自定義標簽!

java_自定義標簽,我的第一個自定義標簽!

row rar return www. AD rst lang hide exc

自定義標簽,我的第一個自定義標簽!

總共分兩步

  1. 編寫一個實現tag接口的java類,把jsp頁面中的java代碼移到這個類中,(標簽處理器類)
  2. 編寫標簽庫描述符(tld)文件,在tld文件中把標簽處理器類描述成一個標簽

一.案例,

輸出客戶端IP

   ViewIP.jsp 

   技術分享圖片
<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib uri="/WEB-INF/firstTag.tld" prefix="itcast"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

 

         <h4>您的iP:</h4>

         <itcast:viewIP/>

</body>

</html>
ViewIP.jsp

  在WEB-INF目錄下建立一個tld文件,:

  firstTag.tld

  技術分享圖片
<?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"> <description>A tag library exercising SimpleTag handlers.</description> <tlib-version>1.0</tlib-version> <short-name>view</short-name> <uri>/WEB-INF/firstTag.tld</uri> <tag> <name>viewIP</name> <tag-class
>Tag.viewIPTag</tag-class> <body-content>empty</body-content> </tag> </taglib>
firstTag.tld

  編寫標簽處理器類:

  viewIPTag.java

  技術分享圖片
package Tag;

import java.io.IOException;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

 

 

public class viewIPTag extends TagSupport{

        

         public int doStartTag() throws JspException{

                   HttpServletRequest request=(HttpServletRequest) this.pageContext.getRequest();

                  

                   JspWriter out=this.pageContext.getOut();

                  

                   String ip=request.getRemoteAddr();

                  

                   try {

                            out.print(ip);

                   } catch (IOException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

                   return super.doStartTag();

         }

}
viewIPTag.java

  效果截圖:

  技術分享圖片

java_自定義標簽,我的第一個自定義標簽!