最简单的一个jsp自定义标签

今天做一个超级简单的自定义标签。我们经常在jsp页面看见陌生的标签,例如<wp:viewIP/>,
那么我们如果定义一个自定义标签呢?
下面便是简单的原因介绍和步骤。
 1、为什么使用自定义标签
      (1)、为了不在jsp页面显示java代码,便于项目模块(代码)的维护。
      (2)、控制jsp标签所在页面是否执行,根据人物权限是否显示,修改jsp页面的输出。

 2、自定义标签的步骤(3步骤)
     (1)、编写java类继承TagSupport或者实现Tag接口。
     这里TagSupport已经实现了TagSupport接口,并复写doStartTag()方法。

     (2)、在WEB-INF下编写tld文件,说明标签。

     (3)、在jsp页面中引入
     <%@taglib uri="/wp-tags" prefix="wp" %>
     并使用<wp:showDate/>

具体文件:
java文件:

package com.haier.tag;

import java.io.IOException;

import javax.servlet.ServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;

public class taglib extends TagSupport{

    /**
     * 
     * 自定义标签开发步骤
     * 1、编写一个实现tag的java类,实际上集成TagSupport
     * 2、在tld文件中定义标签描述文件(WEB-INF下)
     * 3、在jsp页面中引入taglib标签并使用
     * 
    * <p>Title: doStartTag</p>
    * <p>Description: </p>
    * @return
    * @throws JspException
    * @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
     */
    @Override
    public int doStartTag() throws JspException {

        this.pageContext.getOut();
        ServletRequest request=this.pageContext.getRequest();

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

        JspWriter writer=this.pageContext.getOut();

        String addr=request.getRemoteAddr();
        try {
            writer.print(addr);
        } catch (IOException e) {
            new Throwable();
        }

        return super.doStartTag();
    }

    @Override
    public void setPageContext(PageContext pageContext) {
        // TODO Auto-generated method stub
        super.setPageContext(pageContext);
    }

}

tdl文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
  <description><![CDATA[ip地址"]]></description>
  <display-name>"ip地址"</display-name>
  <tlib-version>1.0</tlib-version>
  <short-name>wp</short-name>
  <uri>/wp-tags</uri>
  <tag>
    <description><![CDATA[ip地址]]></description>
    <name>viewIP</name>
    <tag-class>com.haier.tag.taglib</tag-class>
    <body-content>empty</body-content>
  </tag>
</taglib>

jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- http://localhost:9000/ServletDemo/ -->
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
  ```
    自定义标签,获取ip
    <wp:viewIP/>
  ```
  </body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值