当前位置:编程学习 > JS >>

JSP技术中的开发自定义标签

因为在JSP中不要使用一行Java代码,所以说必须使用标签来移除显示的Java代码,下面罗列一下标签的开发过程。
 
1.首先编写一个实现tag接口的java类
 
package com.bird.web.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; 
 
/**
 * 显示来访者IP的自定义标签
 * @author Bird
 *
 */ 
public class ViewIPTag extends TagSupport{ 
 
    private static final long serialVersionUID = 1L; 
     
     
    @Override 
    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) { 
            throw new RuntimeException(e); 
        } 
         
         
        return super.doStartTag(); 
    } 

package com.bird.web.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;
 
/**
 * 显示来访者IP的自定义标签
 * @author Bird
 *
 */
public class ViewIPTag extends TagSupport{
 
       private static final long serialVersionUID = 1L;
      
      
       @Override
       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) {
                     throw new RuntimeException(e);
              }
             
             
              return super.doStartTag();
       }
}
 
 
2.在tld文件里面对标签处理器类进行描述,tld文件的位置在web-inf下面可以在tomcat的webapps下面抄一下
 
 
 
<?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>Bird</short-name> 
    <uri>http://www.bird.net</uri>  
    <tag> 
        <name>viewIP</name> 
        <tag-class>com.bird.web.tag.ViewIPTag</tag-class> 
        <body-content>empty</body-content> 
    </tag> 
    </taglib> 
<?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>Bird</short-name>
    <uri>http://www.bird.net</uri>
    <tag>
        <name>viewIP</name>
              <tag-class>com.bird.web.tag.ViewIPTag</tag-class>
              <body-content>empty</body-content>
    </tag>
    </taglib>
 
4.在界面里面使用tablib命令到导入和使用标签就可以了,
 
 
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> 
<%@taglib uri="http://www.bird.net" prefix="bird" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>一个简单的自定义标签</title> 
     
  </head> 
   
  <body> 
   您访问的IP为: <bird:viewIP/> 
  </body> 
</html> 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>补充:Web开发 , Jsp ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,