JSP——自定义标签(1)入门

自定义标签主要用于移除Jsp页面中的java代码。
 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤:
    编写一个实现Tag接口的Java类(标签处理器类)。
    编写标签库描述符(tld)文件,在tld文件中对标签处理器类进行描述。
使用自定义标签在输出IP:
Java部分:
    public class ShowIP extends TagSupport {
        @Override
        public int doStartTag() throws JspException {
            //Tag的setPageContext方法是由服务器调用的, 而且是在doStartTag之前调用
            //客户端传给我们的是HttpServletRequest请求(ServletRequest是HttpServletRequest的父亲)
            HttpServletRequest request=(HttpServletRequest)pageContext.getRequest();
            String IP=request.getRemoteAddr();
            String i=request.getRequestURI();
            JspWriter write=pageContext.getOut();
            try {
                write.write(i);
                write.write(IP);
            } catch (IOException e) {
                throw new RuntimeException();
            }
            return super.doStartTag();
        }

    }
TLD部分:TLD标签放在WEB-INF目录下
    <?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">
        <tlib-version>1.0</tlib-version>
        <short-name>SimpleTagLibrary</short-name>
        <uri>/ShowIP</uri>
        <tag>
            <name>ShopIP</name>
            <tag-class>web.tag.ShowIP</tag-class>
            <body-content>empty</body-content>
        </tag>
    </taglib>
jsp部分:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/ShowIP" prefix="showIP" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ip的展示</title>
  </head>
  <body>
      您的IP为:<showIP:ShopIP/>
  </body>
</html>

总结:jsp部分的prefix最好写成tld的名字,这样一看就知道了导入的是是哪个tld
    一定要继承Tag(TagSupport是他的子类)

 

posted @ 2016-04-28 11:54  戒。  阅读(95)  评论(0编辑  收藏  举报