一、自定义标签的作用
自定义标签主要用于移除Jsp页面中的java代码。
二、自定义标签开发和使用
2.1、自定义标签开发步骤
1、编写一个实现TagSupport接口的Java类(标签处理器类)
import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; import org.apache.commons.lang.StringUtils; import java.io.IOException; public class ResourceTags extends TagSupport { //参数 private String url; private String className; @Override public int doStartTag() throws JspException { StringBuffer stringBuffer = new StringBuffer(); if(StringUtils.isNotEmpty(url)){ stringBuffer.append("<div>"); stringBuffer.append("<img src='"+url+"' class='"+className+"'>"); stringBuffer.append("</div>"); } JspWriter out = pageContext.getOut(); try { out.write(stringBuffer.toString());//输出到jsp页面 } catch (IOException e) { e.printStackTrace(); } return EVAL_BODY_INCLUDE; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } }
2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述
ResourceTags.tld文件的代码如下:
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <!--taglib(标签库)的版本号 --> <tlib-version>1.0</tlib-version> <!--签库文件的命名空间 --> <short-name>role</short-name> <!-- 为自定义标签库设置一个uri,uri以/开头,/后面的内容随便写,如这里的/gacl , 在Jsp页面中引用标签库时,需要通过uri找到标签库 在Jsp页面中就要这样引入标签库:<%@taglib uri="http://jsp/user/defined/tag" prefix="user"%> --> <uri>http://jsp/user/defined/tag</uri> <tag> <!--标签名--> <name>resource</name> <!-- 标签对应的处理器类--> <tag-class>com.sf.sfbuy2.tags.ResourceTags</tag-class> <!-- 是否有标签体 body-content:值默认的是jsp。如果是自关闭标签,需要制定成empty。 如果标签有属性,还有attribute子元素 --> <body-content>JSP</body-content> <attribute> <description></description> <!--属性的名称(与类中变量同名) --> <name>url</name> <!--是否必需 --> <required>true</required> <!--属性的值是否通过运行时加以赋值(程序动态赋值) --> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <description></description> <name>className</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> </taglib>
2、配置web.xml
(1)作用
在web.xml中进行标签配置文件的设置,告诉web应用程序,需要调用的自定义标签在哪里。
(2)前提
在标签配置文件中,如果没有进行<uri>的配置,则必须进行web.xml的配置。如果已经配置了uri元素的值,就不需要进行web.xml的配置,可以直接在jsp上调用。uri表现在JSP页面引入标签时候,需为taglib指令指定uri,注意和TLD文件中的标签类的别名name区分,那个是在JSP页面中调用标签时候命名空间后面写入。
(3)配置(如上图在WEB.XML中的配置)
所有的标签配置文件的配置,都必须在<jsp-config>元素中。每个配置文件有自己<taglib>元素。
<taglib>
<taglib-location>标签配置文件的物理地址</taglib-location>
<taglib-uri>标签配置文件的调用别名</taglib-uri>
<taglib-uri>http://jsp/user/defined/tag</taglib-uri>
<taglib-location>/WEB-INF/ResourceTags.tld</taglib-location>
</taglib>
在Jsp页面中使用自定义标签
使用"<%@taglib uri="标签库的uri" prefix="标签的使用前缀"%>"指令引入要使用的标签库。
例如:在jsp中引用http://jsp/user/defined/tag标签库
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://jsp/user/defined/tag" prefix="ud"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="robots" content="all" /> <meta name="Description" content="" /> <title>title</title> <%@ include file="/WEB-INF/views/common/common.jsp" %> </head> <body> <div style="text-align:center;"> 使用自定义标签显示指定的图片 <ud:resource url="http://localhost:8080/images/1060868.png" className="aa"/> </div> </body> </html>
相关推荐
本实例将带你深入理解JSP自定义标签的创建和使用。 首先,我们要了解自定义标签的结构。自定义标签通常由三部分组成:标签库描述文件(TLD)、标签处理类(Tag Handler)和JSP页面。TLD是XML格式的文件,用于定义...
通过学习和实践这个JSP自定义标签入门实例,你可以掌握创建和使用自定义标签的基本流程,为进一步深入JSP开发打下坚实的基础。同时,了解自定义标签也是理解JavaServer Faces (JSF)和其他MVC框架中组件化开发的关键...
这个"tld自定义标签基础入门demo"是一个针对初学者的教程,旨在帮助刚接触TLD的程序员快速上手。 首先,我们需要理解TLD文件的结构和作用。TLD文件是一个XML文档,它包含了一系列关于自定义标签的信息,如标签的...
本教程将引导您了解如何入门JSP自定义标签的使用。 **JSP自定义标签介绍** JSP自定义标签是JSP页面中的一个关键特性,它允许开发者创建自己的标签库,以封装复杂的业务逻辑或视图呈现。这使得JSP页面更加清晰,易于...
在Java Web开发中,自定义标签(Custom Tags)是一种强大的工具,它允许开发者创建可重用的组件,提高代码的可读性和维护性。这里我们将深入探讨如何通过给定的"简单的自定义标签入门例子"来理解这个概念。 首先,...
1. JSP自定义标签:JSP自定义标签允许开发者创建自己的标签库,以提高代码的可读性和可复用性,类似于HTML中的自定义元素。 2. TLD(Tag Library Descriptor)文件:定义自定义标签的关键文件,它包含了关于标签的...
《JSP网络开发入门与实践》是一本专为初学者设计的教程,涵盖了从基础到实践的JSP(JavaServer Pages)技术。JSP是一种基于Java的动态网页开发技术,它允许开发者在HTML中嵌入Java代码,实现服务器端的动态内容生成...
自定义标签遵循 `<Prefix:TagFileName>` 格式,使用`<%@ taglib>`导入,并通过标签库描述符(TLD)文件定义。 11. **JSP标准标签库(JSTL)**:JSTL提供了一组标准标签,包括使用EL和不使用EL的两组,便于实现常见...
如果你是初学者,可以参考`CND8 学院`发布的`JSP 教程`,它包含了关于JSP自定义标签的详细讲解和实践案例,适合用来入门学习。 总之,掌握JSP自定义标签对于提升JSP开发效率和代码质量至关重要。通过实践和理解...
- **用Taglib实现循环**:通过自定义标签库实现循环遍历等功能。 - **关于JSTL**:介绍JavaServer Pages Standard Tag Library(JSTL)的核心标签库及其使用方法。 #### 第10章 综合电子留言板 - **电子留言板用户...
JSP自定义标签** 自定义标签允许开发者创建自己的标签库,提高代码的可读性和可重用性。通过编写TLD(Tag Library Descriptor)文件定义标签的行为。 **8. JSP的生命周期** JSP页面经历编译、初始化、服务和销毁四...
- **标签处理类的创建**:为了增强JSP页面的功能性和灵活性,可以自定义标签库。这通常涉及到创建标签处理类,如`MytagInfo.java`和`MytagParam.java`,它们分别用于处理嵌套标签的信息和参数。 #### 六、国际化与...
"JSP网络开发入门与实践"这个主题涵盖了许多核心概念和技术,旨在帮助初学者掌握JSP的精髓,并在实际项目中应用。 首先,JSP的基础知识包括: 1. **JSP页面结构**:一个JSP页面由HTML、CSS、JavaScript以及嵌入的...
自定义标签类都必须继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,或者TagSupport除此之外,JSP自定义标签类还有如下要求。 如果标签类包含属性,每个属性都有对应的getter和setter方法。 重写doTag()...
**JSP(Java Server Pages)技术是Web开发领域中一种重要的服务器端...继续深入学习JSP的高级特性,如自定义标签、EL和JSTL的高级用法、过滤器和监听器等,你将能够更好地驾驭Web开发。祝你在JSP的学习旅程中取得成功!
**JSP(Java Server Pages)** 是一种...书中可能还会涵盖一些高级主题,如自定义标签库的开发、AJAX与JSP的结合、JSP与Spring MVC框架的集成等,旨在帮助读者从基础到进阶,全面掌握JSP技术,实现从新手到专家的转变。
5. **JSTL验证器**如ScriptFreeTLV和PermittedTaglibsTLV,有助于维护代码质量,前者禁止使用JSP脚本元素,后者限制了可使用的自定义标签库。 **JSTL的优势:** 1. **代码分离**:通过使用JSTL,开发者能够在JSP...