- 浏览: 152245 次
- 性别:
- 来自: 武汉
-
最新评论
-
damoqiongqiu:
为神马文档没有离线下载的,求离线的文档,求楼主赐文档:2534 ...
AsWing 入门 -
afeng119:
谢谢,试试好用不!
struts的html:file标签上传文件,中文的文件名会导致乱码问题 -
wenjinglian:
那去用用
JAVA MYSQL做分页 -
zltian:
AsWing 入门 -
毛冬:
呵呵。就是說LIST是對象引用,而不是值引用
JAVA LIST MAP 是引用地址而不是复制
Test.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'Test.jsp' starting page</title> </head> <body> This is my JSP page. <br> Date : <%= new java.util.Date().toString() %> <br> File : <input value="<%= request.getServletPath() %>" /> </body> </html>
为了将这个这个Test.jsp改成自定义标签方法,我们分别使用简单标签和内容标签两种不同的方式实现。
1. 简单标签
由于我们需要输出两个内容(日期和文件名),因此我们为标签创建一个参数。具体代码:
DemoTag.java package com.mycompany; import java.util.Date; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; public class DemoTag extends TagSupport { public int doStartTag() throws JspException { try { HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); JspWriter out = pageContext.getOut(); if (parameter.compareToIgnoreCase("filename") == 0) out.print(request.getServletPath()); else out.print(new Date()); } catch (java.io.IOException e) { throw new JspTagException(e.getMessage()); } return SKIP_BODY; } private String parameter = "date"; public void setParameter(String parameter) { this.parameter = parameter; } public String getParameter() { return parameter; } }
接下来,我们创建标签文件 MyTagLib.tld。标签文件其实只是一个XML格式的说明文件,内容也很简单。
MyTagLib.tld <?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <tag> <name>demo</name> <tag-class>com.mycompany.DemoTag</tag-class> <body-content>empty</body-content> <attribute> <name>parameter</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
在这个标签文件中,我们将我们创建的标签取名 demo,并声明了类型和参数(parameter)。将该文件保存在 /WEB-INF 下面。
当然,我们还需要将我们自定义的标签添加到 web.xml 中,否则还是无法使用。
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <jsp-config> <taglib> <taglib-uri>/WEB-INF/MyTagLib</taglib-uri> <taglib-location>/WEB-INF/MyTagLib.tld</taglib-location> </taglib> </jsp-config> </web-app>
你可能在别处看到过类似的声明,只是没有外面的 jsp-config,但是我们使用的是DTD 2.4,如果不加,Eclipse 会提示出错。
到此为止,我们的自定义标签算是创建完毕。接下来,我们可以开始改写那个JSP文件来分离代码了。
Test.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@taglib uri="/WEB-INF/MyTagLib" prefix="mytag"%> <html> <head> <title>My JSP 'Test.jsp' starting page</title> </head> <body> This is my JSP page. <br> Date : <mytag:demo parameter="date" /><br> File : <mytag:demo parameter="filename" /> </body> </html>
上面这些想必你已经很熟悉,我就不做多说了。
2. 内容标签
创建过程和上面大抵相同,只是程序文件和配置内容有些差异。
DemoTag2.java package com.mycompany; import java.io.IOException; import java.util.Date; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; public class DemoTag2 extends BodyTagSupport { public int doStartTag() throws JspTagException { return EVAL_BODY_BUFFERED; } public int doEndTag() throws JspTagException { String body = this.getBodyContent().getString(); HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); body = body.replace("$date", new Date().toString()); body = body.replace("$filename", request.getServletPath()); try { pageContext.getOut().print(body); } catch (IOException e) { throw new JspTagException(e.getMessage()); } return SKIP_BODY; } }
我们将新的标签 DemoTag2 加入到上面的标签文件中。
MyTagLib.tld <?xml version="1.0" encoding="ISO-8859-1"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <tag> <name>demo</name> <tag-class>com.mycompany.DemoTag</tag-class> <body-content>empty</body-content> <attribute> <name>parameter</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>demo2</name> <tag-class>com.mycompany.DemoTag2</tag-class> <body-content>jsp</body-content> </tag> </taglib>
web.xml 文件无需修改。
看看同时使用两种标签的Test.jsp效果。
Test.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@taglib uri="/WEB-INF/MyTagLib" prefix="mytag"%> <html> <head> <title>My JSP 'Test.jsp' starting page</title> </head> <body> This is my JSP page. <br> Date : <mytag:demo parameter="date" /><br> File : <mytag:demo parameter="filename" /> <hr> <mytag:demo2> Date: $date<br> File: $filename </mytag:demo2> </body> </html>
至此,两种标签方式都完成。
本文并没有就相关技术细节做出说明,建议您看看Sun有关JSP自定义标签的官方文档。
无论是用自定义标签,还是使用JavaBean,都没有太大的区别,各人或者团队可以根据自己的习惯使用。如果需要在独立类库中封装一些供页面使用的单元,自定义标签应该更适合些。不过现在的IDE环境(MyEclipse)在编写自定义标签的时候可能有些不太舒服的情况,界面开发人员使用JavaBean方式可能更方便些,免得莫名其妙的提示干扰您的工作。
发表评论
-
动易标签大全
2009-06-24 13:08 2756网站通用标签适用于整 ... -
JAVA LIST MAP 是引用地址而不是复制
2009-03-10 10:36 4039StringBuffer aa=new StringBuffe ... -
取得上1次等入的session
2009-03-10 10:25 1554前言作为J2EE的重要组成部分的jsp和servlet规范中, ... -
无级栏目
2009-01-07 17:32 1293很早以前写的东西 这2天要用找了我10几分中 放上来做个笔记 ... -
excel导出文件
2009-01-06 15:48 1654// 创建一个新的excel文件,并将数据导入进去 publ ... -
图片光标定位
2008-12-24 17:25 1604<form action="2.jsp ... -
JAVA导出EXCEL
2008-12-19 10:29 3333Vector vector=listSparepart(con ... -
JAVA 读写文件
2008-11-14 09:44 1592public static void main(String ... -
img图片没找到onerror事件
2008-11-12 15:50 2943<script type="text/java ... -
HTMLArea onsubmit 提交验证问题
2008-10-31 11:21 1469在JSP中用上了HTMLArea后发现里边有个ONSUBMIT ... -
radio JS验证
2008-10-29 17:03 1507function checked(){ var isJu ... -
JAVA读文件夹
2008-10-28 09:05 2404public static boolean readfi ... -
java md5类
2008-10-16 16:00 3742public static String getMD5(byt ... -
DWR写个3级联动
2008-09-18 10:08 1560我原先写过1个拿prototype.js写过1个 可惜和htm ... -
添加时间的JS
2008-09-11 11:28 1073他同学小小那边有份 可惜他那个我用的时候JS 总在暴错 以前我 ... -
总结:子窗口创建及父窗口与子窗口之间通信
2008-09-05 16:46 35341、Javascript弹出子窗口 可以通过多种方式实现,下面 ... -
反射写SQL语句
2008-08-26 15:54 1023// 改 // public void update(Obj ... -
JAVA mysql插入时间
2008-08-21 10:18 3612MYSQL为DATATIME型的时候 pstmt.setTim ... -
java mysql批量导入优化
2008-08-08 09:18 2480Connection conn=dao.getConn(); ... -
JAVA读Excel
2008-07-22 09:36 0public static void main(String ...
相关推荐
Java自定义标签是JavaServer Pages (JSP)技术的一个强大特性,它允许开发者扩展JSP的标准标签库,创建自己的定制化标签,以提高代码的可读性和可维护性。自定义标签可以封装复杂的业务逻辑或者视图呈现,使得页面...
首先,Java自定义标签是一个Java类,它可以实现`javax.servlet.jsp.tagext.Tag`接口或者其子接口。这个接口定义了标签的生命周期方法,如`doStartTag()`和`doEndTag()`,这些方法在标签的生命周期中被容器调用来执行...
### Java自定义标签详解 在Java Web开发领域中,自定义标签是一种强大的工具,它可以显著提升页面开发效率,简化代码复杂度。通过自定义标签,开发者可以将常用的、复杂的操作封装起来,使得JSP页面更加简洁易读。...
在Java Web开发中,自定义标签(Custom Tags)和自定义函数(Custom Functions)是提高代码复用性和可维护性的重要手段。它们是JSP(JavaServer Pages)标准标签库(JSTL)的一种扩展,允许开发者创建符合特定业务...
Java自定义标签是JavaServer Pages (JSP)技术的一个强大特性,它允许开发者扩展JSP的标准库,创建自己的标签库,以实现特定的功能或者简化代码。这种机制使得开发者能够将业务逻辑封装在标签中,提高代码的可读性...
总之,Java自定义标签是Java Web项目中的重要工具,它们通过提供可复用的代码片段,促进了代码的模块化和项目管理的优化。理解并熟练使用自定义标签,对于提升Java Web开发的专业技能大有裨益。
在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而Java自定义标签则是JSP中增强可重用性和模块化的一种方法。本文将深入探讨如何使用Java自定义标签来实现分页功能,当前位置的显示以及数据的...
Java自定义标签是JavaServer Pages (JSP)技术的一个强大特性,它允许开发者创建可重用的、定制化的标签库,以提高代码的可读性和可维护性。本教程将逐步指导你如何编写自己的Java自定义标签。 首先,我们需要了解...
Java自定义标签是一种扩展JSP页面功能的方式,它允许开发者创建可重用的组件,使得在JSP页面中处理业务逻辑或展现复杂视图变得更加简便。在这个“java自定义标签分页”主题中,我们将深入探讨如何利用自定义标签来...
java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp自定义标签非常好用大家下载学习java jsp...
自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签自定义分页标签...
Java自定义标签开发是Java服务器页面(JSP)技术中的一种高级特性,它允许开发者创建自己的标签库,以提供更加可重用、可维护和可扩展的代码。本资源包包含的内容涵盖了Java自定义标签的各个方面,从基础概念到实际...
Java自定义标签是基于Java类的,这些类实现了`javax.servlet.jsp.tagext.Tag`或`javax.servlet.jsp.tagext.SimpleTag`接口。`Tag`接口是经典且必须实现的接口,它定义了标签生命周期中的一系列方法,如`doStartTag...
首先,我们需要了解Java自定义标签的基础。在Java Servlet规范中,JSP标准标签库(JSTL)提供了许多预定义的标签,但有时这些标签无法满足我们的特定需求。这时,我们可以创建自己的自定义标签库(Tag Library)来...
本篇文章将深入探讨Java自定义标签的简单实例,帮助你理解如何在实际开发中应用这一技术。 首先,我们需要了解自定义标签的基本结构和组成。一个自定义标签通常由三部分组成:标签库描述文件(TLD)、标签处理类...
Java自定义标签是JavaServer Pages (JSP)技术的一个强大特性,它允许开发者创建可重用的组件,增强页面的可读性和维护性。在Java Web开发中,自定义标签通常用于封装复杂的业务逻辑或者视图展示,比如这里的"分页...
在Java编程语言中,自定义标签(也称为自定义JSP标签)是扩展JSP页面功能的一种强大方式。它们允许开发者创建可重用的代码片段,以提高代码的可读性和可维护性。本篇文章将深入讲解Java中自定义标签的使用方法,包括...
本教程将深入探讨Java自定义标签的实现与使用,通过详细的注释和使用文档,帮助你理解和掌握这一技术。 首先,我们需要了解自定义标签的基本结构。自定义标签由三部分组成:标签处理类(Tag Handler Class)、TLD...
总结来说,Java自定义标签的实现涉及创建TLD文件、编写标签处理器类以及在JSP页面中使用。这种机制使得开发者能够构建自己的函数库,提供定制化的功能,从而提高代码复用性和应用程序的可维护性。在本例中,我们学习...