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的字符串。
分享到:
相关推荐
在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...
通过以上内容的学习,我们可以理解JSP自定义标签的基本原理,掌握创建和使用自定义标签的方法,从而提升JSP应用的开发效率和代码质量。在实际项目中,合理利用自定义标签,可以构建出模块化、易于维护的Web应用程序...
本实例将深入探讨如何实现一个简单的JSP自定义标签。 首先,自定义标签的实现主要依赖于两个核心概念:Tag接口和TagSupport类。`Tag`接口定义了自定义标签必须实现的方法,如`doStartTag()`和`doEndTag()`,它们...
本篇文章将深入探讨JSP自定义标签的开发与使用,以及如何通过实例`Demo1_JspTag`来理解这一过程。 首先,我们需要了解自定义标签的基本概念。自定义标签是JSP的一种扩展机制,它允许我们封装复杂的Java代码或业务...
本教程将深入探讨JSP自定义标签的使用,同时结合实例介绍分页和下拉框绑定值的封装。 一、JSP自定义标签基础 1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它...
本教程将深入探讨JSP自定义标签的实例与详细讲解。 一、JSP自定义标签概述 JSP自定义标签是类似于HTML标签的自定义组件,但它们提供了更强大的功能,可以封装Java代码,提供复杂的业务逻辑。自定义标签通过TLD(Tag...
**JSP自定义标签详解** 在Java服务器页面(JSP)技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用的组件,这些组件的行为类似于HTML标签,但具备更强大的功能和灵活性。这篇博客将深入探讨JSP...
一、JSP自定义标签基础 JSP自定义标签是JSP技术的一部分,它允许开发者创建自己的标签,以扩展HTML或XML文档。这些自定义标签可以封装复杂的Java代码,使JSP页面更加清晰,易于理解和维护。自定义标签由两部分组成:...
在IT行业中,Java Server ...总的来说,JSP自定义标签为开发人员提供了强大且灵活的方式来扩展JSP的功能。结合前端技术,我们可以构建出交互性极强的动态网页,例如这里的自动完成框,极大地提升了用户的输入体验。
在使用JSP自定义标签时,开发者可能会遇到一些报错问题,这通常涉及到项目结构、类路径设置或自定义标签的编译与打包方式。在本文中,我们将深入探讨这些问题,以及如何解决“JspException”这个特定异常。 首先,...
在JavaServer Pages (JSP) 开发中,自定义标签库是提高代码可重用性和模块化的重要手段。本文将详细讲解如何利用JSP自定义标签库实现...理解这些文件的作用和相互关系,对于掌握JSP自定义标签库的开发和应用至关重要。
本文将深入探讨三个核心概念:JSP自定义标签、Structs2框架以及JUnit测试,同时会提及Structs2中的自定义拦截器。 首先,JSP自定义标签是Java Web开发中的一种高级特性,它允许开发者创建自己的标签库,以提高代码...
### jsp自定义嵌套标签:定义与使用详解 在JavaServer Pages(JSP)技术中,自定义标签是扩展其功能的一种强大手段。而自定义嵌套标签,则是在此基础上进一步提升灵活性和重用性的机制。本文将深入探讨自定义嵌套...
总之,JSP自定义标签是提高JSP开发效率和代码复用性的重要工具,通过创建和使用自定义标签,我们可以构建出更加模块化、易于维护的Web应用程序。结合Tomcat这样的Servlet容器,可以快速地部署和测试这些自定义组件。
总之,Struts2自定义标签是提升项目开发效率和代码质量的有效手段。理解并熟练运用自定义标签,可以让开发者更好地驾驭Struts2框架,构建出高效、易维护的Web应用。在`teststruts2`项目中,通过实践和探索,你将...
总结起来,"JSP自定义Table标签demo"是一个教育性的示例,它演示了如何利用JSP自定义标签的灵活性和强大功能,来创建复杂且可复用的组件,如动态表格。通过学习和理解这个demo,开发者可以提升自己的JSP开发能力,...
本篇将深入探讨“JSP自定义标签之日期显示”,以及如何通过自定义标签来优雅地处理日期格式化和展示。 首先,我们要理解JSP自定义标签的基本概念。自定义标签是JSP的一种扩展,它不是Java内置的标签,而是由开发者...
2. **定义TLD(Tag Library Descriptor)文件**:TLD文件是JSP自定义标签库的元数据,它定义了标签的名称、属性、行为等。TLD通常放在WEB-INF目录下的tags子目录下,并以`.tld`为扩展名。在TLD文件中,你需要声明你...
总结来说,通过学习和实践JSP自定义标签,我们可以构建高效、灵活的Web应用程序,比如这里的分页系统,它不仅简化了页面的开发,还增强了系统的扩展性和可维护性。在实际项目中,结合良好的设计原则和最佳实践,...
通过理解和熟练运用这些知识点,你可以更有效地创建和使用JSP自定义标签库,提升项目开发效率。在实际应用中,务必遵循最佳实践,保持代码的清晰和规范,以便团队成员之间的协作和代码的长期维护。