1、编写一个实现Tag接口的java类

package TagDemo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
import java.io.IOException; public class ViewIPTag implements Tag { private PageContext pageContext; @Override
public void setPageContext(PageContext pageContext) {
this.pageContext = pageContext;
} @Override
public void setParent(Tag tag) { } @Override
public Tag getParent() {
return null;
} @Override
public int doStartTag() throws JspException {
System.out.println("调用doStartTag方法");
HttpServletRequest request= (HttpServletRequest) pageContext.getRequest();
JspWriter writer=pageContext.getOut();
String ip=request.getRemoteAddr();
try {
writer.write(ip);
} catch (IOException e) {
e.printStackTrace();
}
return 0;
} @Override
public int doEndTag() throws JspException {
System.out.println("调用doEndTag方法");
return 0;
} @Override
public void release() {
System.out.println("调用release方法");
}
}

ViewIPTag

2、编写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">
<description>自定义标签</description> <tlib-version>1.0</tlib-version> <short-name>SDT</short-name> <uri>/sefDefineTag</uri>
<tag>
<description>输出客户端地址</description>
<name>viewIPTag</name>
<tag-class>TagDemo.ViewIPTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>

tld

taglib标签库标签简述

  description:对标签库描述信息

  tlib-version:标签库版本

  short-name:标签库名称

  uri:标签库唯一标识,jsp就是通过uri引用标签的,uri必须以/开头,后面随便写,只要名称唯一;如下面引用<%@taglib prefix="sdt" uri="/sefDefineTag" %>

tag:taglib标签库中可以包含多个自定义标签,每个tag对应一个自定义标签

  description:对当前标签的描述

  name:定义一个名称,Jsp中通过这个名称引用标签处理器类

  tag-class:对应的标签处理器类

  body-content:定义标签体操作方式,如empty,规定标签体内不能有内容,如有则抛异常;如JSP,则允许标签体内有内容;下一节结合标签控制器类方法返回值再介绍

3、在Jsp文件中测试

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="sdt" uri="/sefDefineTag" %>
<html>
<head>
<title></title>
</head>
<body>
IP:<sdt:viewIPTag/>
</body>
</html>

Jsp

Jsp中就可以引入标签库,使用prefix可以设置标签库别名,标签使用方式就是<标签库别名:标签名称>

自定义JSP标签入门的更多相关文章

  1. 自定义JSP标签库及Properties使用

    自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...

  2. 自定义JSP标签示例

    我们以一个例子来讲解如何自定义JSP标签,假如我们需要在页面中输出当前的时间,按照最简单的JSP脚本,需要在JSP里面写很多Java代码,那么如何来使用自定义标签实现这个功能呢? 首先,我们要先创建一 ...

  3. JSP自定义简单标签入门之带有属性

    上面写的那个简单标签来控制页面中标签内容的重复次数是固定的,这就是权限"写死了",这是非常不好的行为,因为其灵活性太差.所以下面就介绍一种使用属性来控制标签内容输出次数的方法. 准 ...

  4. 自定义jsp标签

    1.类: package ===============================; import javax.servlet.jsp.JspTagException; import javax ...

  5. 自定义JSP标签实现语言国际化(类似struts text标签),并同时支持图片、JS文件国际化

    源代码及样例下载地址: http://download.csdn.net/detail/u014569459/7169385 一.功能说明: 1. 支持语言国际化 2. 支持图片文件.JS文件国际化 ...

  6. Jsp标签字典开发_基于Spring+Hibernate

    目录 1. Jsp标签字典开发_基于Spring+Hibernate 1.1. 简述 1.2. 定义DictItem实体 1.3. 定义字典的@interface 1.4. 定义字典缓存类 1.5. ...

  7. 使用自定义tld标签简化jsp的繁琐操作

    最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...

  8. 一、JSP标签介绍,自定义标签

    一.JSP标签介绍 1. 标签库有什么作用 自定义标签库是一种优秀的表现层技术,之前介绍的MVC模式,我们使用jsp作为表现层,但是jsp语法嵌套在html页面,美工还是很难直接参与开发,并且jsp脚 ...

  9. Java基础83 JSP标签及jsp自定义标签(网页知识)

    1.JSP标签 替代jsp脚本,用于jsp中执行java代码1.1.内置标签:  <jsp:forward></jsp:forward>  相当于:request.getReu ...

随机推荐

  1. Beta版本冲刺Day5

    会议讨论: 628:配置java环境已经成功,Tomcat部署也成功了,Mysql还未进行配置.601:继续修改其他的页面外观. 528:继续完成其他的功能页面. 340:对一些页面进行了优化美观,并 ...

  2. javascript生成GUID的代码

    <script type="text/javascript"> var Guid = function(){}; Guid.prototype = { S4:funct ...

  3. jquery slide使用总结

    .slideUp([duration][,complete])--目标元素向上滑入隐藏: .slideDown([duration][,complete])--目标元素向下滑出显示: .slideTo ...

  4. “Ceph浅析”系列之七——关于Ceph的若干想法

    本篇文章的内容,主要是笔者在调研分析Ceph过程中产生的一些思考.因为其中的内容比较自由发散,且大多是笔者的个人见解,故此另启一文进行讨论. 关于Ceph的性能 目前为止,本系列的文章中没有涉及到Ce ...

  5. android中的屏幕单位介绍

    1.px (pixels)(像素):是屏幕的物理像素点,与密度相关,密度大了,单位面积上的px 会比较多.通常不推荐使用这个. 2.dip 或dp(与密度无关的像素):一个基于density(密度)的 ...

  6. java 枚举的常见使用方法

    JDK1.5引入了新的类型-枚举,枚举的出现在日常开发中带来了极大的方便. 常用方法一:常量 JDK1.5之前我们平时定义系统常量,基本都是用public static final ... 出现枚举以 ...

  7. [转]servlet中的service, doGet, doPost方法的区别和联系

    原文地址:http://m.blog.csdn.net/blog/ghyg525/22928567 大家都知道在javax.servlet.Servlet接口中只有init, service, des ...

  8. Mac 下,配置SVN

    Mac 环境下 sv 服务器的配置 本文目录 • 一.创建代码仓库,用来存储客户端所上传的代码 • 二.配置svn的用户权限 • 三.使用svn客户端功能 在Windows环境中,我们一般使用Tort ...

  9. Html+js 控制input输入框提示

    <input type="text" class="fl plsearch_txt" id="key" value="请输入 ...

  10. [bzoj4326][NOIP2015]运输计划

    Description 公元2044年,人类进入了宇宙纪元. 国有个星球,还有条双向航道,每条航道建立在两个星球之间,这条航道连通了国的所有星球. 小掌管一家物流公司,该公司有很多个运输计划,每个运输 ...