- 浏览: 936945 次
- 性别:
- 来自: 成都
文章分类
最新评论
JSP 2开发自定义标签步骤
1、开发自定义标签处理类;在JSP 2中,处理类需要继承SimpleTagSupport类;
2、建立一个*.tld文件,每个*.tld文件对应一个标签库,每个标签库可以包含多个标签;
3、在JSP文件中使用自定义标签;
使用标签库
在JSP页面使用指定的标签需要确定两点
1、标签库URI:确定使用哪个标签库
2、标签名:确定使用哪个标签;
使用标签库分为以下两个步骤:
1、导入标签库:使用taglib编译指令导入标签库,就是将标签库和指前前缀关联起来;
2、使用标签:在JSP页面中使用自定义标签;语法如下:
<%@ taglib uri="tagliburi" prefix="tagprefix"%>
下面主要介绍带属性的标签、带标签体的标签、以页面片段作为属性的标签及动态属性标签
(1)、带属性的标签
自定义标签处理类QueryTag.java:
package aniyo.tag.demo; import java.io.IOException; import java.io.Writer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * 带属性的标签 * @author aniyo * blog:http://aniyo.iteye.com * */ public class QueryTag extends SimpleTagSupport{ //标签的属性 private String driver; private String url; private String user; private String pass; private String sql; //执行数据库访问的对象 private Connection conn = null; private Statement stmt = null; private ResultSet rs = null; private ResultSetMetaData rsmd = null; //省略get/set方法。。。 /* (non-Javadoc) * @see javax.servlet.jsp.tagext.SimpleTagSupport#doTag() */ @Override public void doTag() throws JspException, IOException { try { Class.forName(driver); conn = DriverManager.getConnection(url, user, pass); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); rsmd = rs.getMetaData(); //获取 列数目 int columnCount = rsmd.getColumnCount(); //获取页面输出流 Writer out = getJspContext().getOut(); //在页面输出表格 out.write("<table border='1' bgcolor='grade' width='300'>"); while(rs.next()){ out.write("<tr>"); out.write("<td>"+rs.getInt(1)+"</td>"); out.write("<td>"+rs.getString(2)+"</td>"); out.write("</tr>"); } out.write("</table>"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }finally{ //关闭结果集 try { if(rs!=null){ rs.close(); } if(stmt!=null){ stmt.close(); } if(conn!=null){ conn.close(); } } catch (Exception e2) { e2.printStackTrace(); } } } public static void main(String[] args) { new QueryTag(); } }
tld文件:querytaglib.tld
<?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>A tag library exercising SimpleTag handlers.</description> <tlib-version>1.0</tlib-version> <short-name>querytaglib</short-name> <!-- 定义标签库的uri属性,该属性非常重要 --> <uri>http://www.crazyit.org/querytaglib</uri> <tag> <description>Outputs QueryTag</description> <name>queryTag</name> <tag-class>aniyo.tag.demo.QueryTag</tag-class> <body-content>empty</body-content> <attribute> <name>driver</name> <required>true</required> <fragment>true</fragment> </attribute> <attribute> <name>url</name> <required>true</required> <fragment>true</fragment> </attribute> <attribute> <name>user</name> <required>true</required> <fragment>true</fragment> </attribute> <attribute> <name>pass</name> <required>true</required> <fragment>true</fragment> </attribute> <attribute> <name>sql</name> <required>true</required> <fragment>true</fragment> </attribute> </tag> </taglib>
jsp页面:QueryTag.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib uri="http://www.crazyit.org/querytaglib" prefix="mytag" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <mytag:queryTag driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javaee" user="root" pass="123" sql="select * from news_inf" /> </body> </html>
自定义标签的其他用法见附件
- Demo1_JspTag.7z (8 KB)
- 下载次数: 14
发表评论
-
object references an unsaved transient instance
2017-08-08 14:38 1793org.hibernate.TransientObject ... -
Jave获取当前日期的上一个月最后一天或者下一个月最后一天
2017-02-08 09:58 1320public final static Date addMo ... -
valid date
2017-02-04 16:37 953public final static boolea ... -
Row was updated or deleted by another transaction (or unsaved-value mapping was
2017-02-04 11:41 2602org.hibernate.StaleObjectState ... -
hibernate hql return object or list 指定类型
2017-01-25 17:58 900java.lang.ClassCastException: ... -
解决Maven/Ant中OutOfMemory错误
2017-01-12 11:06 864当Maven项目很大,或者你运行诸如 mvn site 这样 ... -
Row was updated or deleted by another transaction (or unsaved-value mapping was
2016-03-31 16:15 1114Row was updated or deleted by ... -
identifier of an instance of ……was alter from 2 to null
2016-03-29 09:32 1650Undefined Error: org.hibernate ... -
Caused by: org.hibernate.AssertionFailure: collection owner not associated with
2016-01-13 16:49 1496Caused by: org.hibernate.Asser ... -
遍历Set集合remove掉不需要的数据,List不能在遍历的时候remove
2015-12-29 15:33 2517for(Iterator<IAddress> ... -
oracle查询约束
2015-12-28 14:45 1385查询约束类型 select distinct constr ... -
should be mapped with insert="false" update="false"
2015-04-22 16:23 1379Caused by: org.hibernate.Mappi ... -
org.hibernate.PropertyAccessException: IllegalArgumentException occurred
2015-04-16 17:42 958org.hibernate.PropertyAccessEx ... -
no persistent classes found for query class
2015-04-13 16:54 1695no persistent classes found fo ... -
hql unexpected token: exchange
2015-03-13 10:12 1332ORB.thread.pool : 0line 1:1 ... -
从一个英文字符串中找出每个单词出现的频率
2015-03-06 14:56 1490import java.util.*; publi ... -
Caused by: java.io.IOException: Mismatched serialization UIDs
2015-02-04 10:51 1420Caused by: java.io.IOException ... -
Hibernate :Found shared references to a collection
2014-12-16 11:13 1104项目中在session.flush(); 抛了异常 遇到这 ... -
HibernateException: Illegal attempt to associate a collection with two open sess
2014-12-09 13:56 746项目中遇到这个 HibernateException: Il ... -
获取Float整型数据如何去掉小数点后面的小数点及0
2014-11-12 10:56 3670float a = 12345; System.out.p ...
相关推荐
本教程将深入探讨JSP自定义标签的使用,同时结合实例介绍分页和下拉框绑定值的封装。 一、JSP自定义标签基础 1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它...
在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的关键手段,它允许开发者创建可重用的组件,提高...在给定的实例中,我们可以看到一个简单的自定义标签的实现和使用过程,涵盖了JSP自定义标签的基本流程。
通过以上内容的学习,我们可以理解JSP自定义标签的基本原理,掌握创建和使用自定义标签的方法,从而提升JSP应用的开发效率和代码质量。在实际项目中,合理利用自定义标签,可以构建出模块化、易于维护的Web应用程序...
【JSP自定义标签开发使用】知识详解 JSP(JavaServer Pages)是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码。在JSP中,自定义标签的使用可以增强代码的可读性和可维护性,使得复杂的业务逻辑更易于封装...
在JavaServer Pages (JSP) 开发中,自定义标签库是提高代码可重用性和模块化的重要手段。本文将详细讲解如何利用JSP自定义标签库实现...理解这些文件的作用和相互关系,对于掌握JSP自定义标签库的开发和应用至关重要。
总之,JSP自定义标签是提高JSP开发效率和代码复用性的重要工具,通过创建和使用自定义标签,我们可以构建出更加模块化、易于维护的Web应用程序。结合Tomcat这样的Servlet容器,可以快速地部署和测试这些自定义组件。
在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...
在使用JSP自定义标签时,开发者可能会遇到一些报错问题,这通常涉及到项目结构、类路径设置或自定义标签的编译与打包方式。在本文中,我们将深入探讨这些问题,以及如何解决“JspException”这个特定异常。 首先,...
**JSP自定义标签开发手册** 在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用、可封装的组件,提升代码的可读性和可维护性。本手册将深入探讨JSP自定义标签的开发流程...
在IT行业中,Java Server ...总的来说,JSP自定义标签为开发人员提供了强大且灵活的方式来扩展JSP的功能。结合前端技术,我们可以构建出交互性极强的动态网页,例如这里的自动完成框,极大地提升了用户的输入体验。
以下是对JSP自定义标签库的详细解释和使用注意事项: 1. **自定义标签开发步骤** - **编写JAVA类**:你需要创建一个Java类来实现特定的接口,如`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext...
一、JSP自定义标签基础 JSP自定义标签是JSP技术的一部分,它允许开发者创建自己的标签,以扩展HTML或XML文档。这些自定义标签可以封装复杂的Java代码,使JSP页面更加清晰,易于理解和维护。自定义标签由两部分组成:...
本教程将深入探讨JSP自定义标签的实例与详细讲解。 一、JSP自定义标签概述 JSP自定义标签是类似于HTML标签的自定义组件,但它们提供了更强大的功能,可以封装Java代码,提供复杂的业务逻辑。自定义标签通过TLD(Tag...
本篇将深入探讨“JSP自定义标签之日期显示”,以及如何通过自定义标签来优雅地处理日期格式化和展示。 首先,我们要理解JSP自定义标签的基本概念。自定义标签是JSP的一种扩展,它不是Java内置的标签,而是由开发者...
总结来说,通过学习和实践JSP自定义标签,我们可以构建高效、灵活的Web应用程序,比如这里的分页系统,它不仅简化了页面的开发,还增强了系统的扩展性和可维护性。在实际项目中,结合良好的设计原则和最佳实践,...
Java JSP 自定义标签开发是Java Web开发中的一个重要组成部分,它允许开发者扩展JSTL提供的标准标签库,以满足特定的业务需求。JSTL(JavaServer Pages Standard Tag Library)包含四个主要的标签库,分别是核心标签...
**JSP自定义标签开发入门** 在Java Web开发中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,为了提高代码的可读性和可维护性,通常会推荐...
本资源“jsp自定义标签大全”包含了一系列示例和详细教程,涵盖了从基础到高级的自定义标签使用方法,对于想要深入了解和掌握JSP自定义标签的开发者来说是一份宝贵的参考资料。通过学习和实践这些示例,你可以更好地...