jsp自定义标签可以完成jsp脚本的功能,所以可以取代丑陋的JSP脚本。
在JSP2中开发标签库只需要一下3步:
- 开发自定义标签处理类(继承自javax.servlet.jsp.tagext.SimpleTagSupport);
- 建立一个*.tld(Tag library definition)文件(也称标签库定义文件);
- 在JSP文件中使用自定义标签。
下面就上面的每一步进行详细介绍。
一、开发自定义标签类
我们在jsp页面中使用的再简单的标签,其实质上都是由标签处理类提供实现的。
自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport 。除此之外,对应自定义标签类还有2个要求:
- 如果标签类包含属性,每个属性都应该提供对应的getter和setter方法;
- 需要重写doTag()方法,这个方法负责生成页面内容。
下面开发一个最简单的自定义标签,该标签负责在页面上输出HelloWorld:
package com.user.defined.jstl;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
//开发一个最简单的自定义标签,该标签负责在页面上输出HelloWorld
public class HelloWorldTag extends SimpleTagSupport
{
//重写doTag方法,该方法在标签结束生成页面内容
public void doTag()throws JspException,IOException
{
//获取页面输出流,并输出字符串
getJspContext().getOut().write("Hello World");
}
}
二、建立TLD文件
每个tld文件对一个标签库,一个标签库中可以含有多个标签。tld文件也称为标签库定义文件。
标签库定义文件的根元素是taglib,它可以包含多个tag子元素,每个tag子元素都定义了一个标签。在tomcat6安装目录下的webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld,在jsp2-example-taglib.tld示范用的标签库文件上进行修改即可。
新建一个名为mytaglib.tld的文件,并将其放在WEB-INF/路径,或是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
web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>mytaglib</short-name>
<!-- 定义该标签库的URI -->
<uri>http://www.xkh5566.iteye.com/mytaglib</uri>
<!-- 定义第一个标签 -->
<tag>
<!-- 定义标签名 -->
<name>helloWorld</name>
<!-- 定义标签处理类 -->
<tag-class>com.user.defined.jstl.HelloWorldTag</tag-class>
<!-- 定义标签体为空 -->
<body-content>empty</body-content>
</tag>
</taglib>
三、使用标签库
使用标签库分成2个步骤:
- 导入标签库:使用taglib编译指令导入标签库,就是将标签库和指定前缀关联起来;
- 使用标签:在JSP页面中使用自定义的标签。
taglib 的语法格式:
<%@ taglib uri="taglibUri" prefix="tagPrefix"%>
使用标签的语法格式:
<tagPrefix:tagName tagAttrubute="tagValue" ...>
<tagBody/>
</tagPrefix:tagName>
新建一个helloWorldTag.jsp
<%@ page contentType="text/html;
charset=UTF-8"%>
<!-- 导入标签库,指定mytag前缀的标签,
由http://www.xkh5566.iteye.com/mytaglib的标签库处理 -->
<%@ taglib uri="http://www.xkh5566.iteye.com/mytaglib"
prefix="mytag"%>
<html>
<head>
<title>自定义标签示范</title>
</head>
<body bgcolor="#ffffc0">
<h2>
下面显示的是自定义标签中的内容
</h2>
<!-- 使用标签 ,其中mytag是标签前缀,根据taglib的编译指令,
mytag前缀将由http://www.xkh5566.iteye.com/mytaglib的标签库处理
-->
<mytag:helloWorld />
<BR>
</body>
</html>
浏览helloWorldTag.jsp可以看到在页面中输出了Hello World的字符串。
分享到:
相关推荐
本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...
用工程的形式展示如何开发自定义JSP标签,在studyRemark里面有在网上搜罗的详细教程。如果结合我写的实例自定义标签,相信你能很快掌握如何开发自定义标签。
自定义标签开发使用。JSP自定义标签开发使用
其实,开发自定义标签并不需要Struts2的支持,一般情况下,只需要继承javax.servlet.jsp.tagext.BodyTagSupport类,重写doStartTag,doEndTag等方法即可。这里在实现自定义标签时,继承的2个类分别是org.apache....
NULL 博文链接:https://aniyo.iteye.com/blog/1618516
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...
java jsp 自定义标签开发 在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库)
JSP自定义标签示例 详细注释了开发定义标签中常遇到的各类问题并附教程,希望可以帮助初学者节省两三天的时间
jsp自定义标签开发+TLD文件元素详解+实例;从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类...
本教程可以教你如何自主开发java使用的自定义标签
JSP应用开发-自定义标签的使用.pptx
JSP自定义标签示例 详细注释了开发定义标签中常遇到的各类问题并附教程,希望可以帮助初学者节省两三天的时音
feilong-taglib,是 JSP常用自定义标签集 主要由两部分组成 Common 包含所有自定义标签的base类,以及常用的自定义标签 和el function taglib 说明 isContains 判断一个值,...
jsp自定义标签之ifelse与遍历自定义标签示例.docx
资源内容:java自定义标签开发;JSP页面中自定义标签详解教程;JSP自定义标签简介;taglib_原理和实现;更多场景的示例Demo;
开发一个自定义标签,在JSP的开发中将会非常实用和方便,这里给出了开发一个自定义标签的实例。每一步都有。
完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...
jsp通过自定义标签库实现数据列表显示的方法.docx
jsp简单自定义标签的forEach遍历及转义字符示例.docx
这是本人自己写的,里面包括传参与不传参的标签,很方便,步骤很详细。所有就上传上来了。