`

JSP自定义标签的开发及使用

    博客分类:
  • java
阅读更多

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>

 自定义标签的其他用法见附件

分享到:
评论

相关推荐

    JSP自定义标签开发使用

    自定义标签开发使用。JSP自定义标签开发使用

    JSP自定义标签学习笔记

    本人自行研究JSP自定义标签的学习笔记 目录如下: 目录 一、概述 1 1.1 使用简单标签机制 2 1.2 使用标签文件 3 二 、自定义标签简介 3 2.1 自定义标签概念 3 2.2 标签相关概念 3 2.3 如何创建自定义标签 3 三、自...

    jsp自定义标签开发+TLD文件元素详解+实例

    jsp自定义标签开发+TLD文件元素详解+实例;从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类...

    java jsp 自定义标签开发

    java jsp 自定义标签开发 在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库)

    jsp自定义标签开发教程

    本教程可以教你如何自主开发java使用的自定义标签

    JSTL 以及自定义标签开发相关

    JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...

    开发自定义JSP标签

    用工程的形式展示如何开发自定义JSP标签,在studyRemark里面有在网上搜罗的详细教程。如果结合我写的实例自定义标签,相信你能很快掌握如何开发自定义标签。

    JSP自定义标签示例源码

    JSP自定义标签示例 详细注释了开发定义标签中常遇到的各类问题并附教程,希望可以帮助初学者节省两三天的时间

    jsp自定义标签之ifelse与遍历自定义标签示例.docx

    jsp自定义标签之ifelse与遍历自定义标签示例.docx

    Java自定义标签开发.zip

    资源内容:java自定义标签开发;JSP页面中自定义标签详解教程;JSP自定义标签简介;taglib_原理和实现;更多场景的示例Demo;

    JSP自定义标签示例

    JSP自定义标签示例 详细注释了开发定义标签中常遇到的各类问题并附教程,希望可以帮助初学者节省两三天的时音

    JSP自定义标签开发入门

    NULL 博文链接:https://li7jia7.iteye.com/blog/1820638

    jsp自定义标签开发手册

    自己找资料转成的 希望对大家有用 啊啊啊啊啊啊v

    JSP应用开发-自定义标签的使用.pptx

    JSP应用开发-自定义标签的使用.pptx

    struts2自定义标签案例详解

    其实,开发自定义标签并不需要Struts2的支持,一般情况下,只需要继承javax.servlet.jsp.tagext.BodyTagSupport类,重写doStartTag,doEndTag等方法即可。这里在实现自定义标签时,继承的2个类分别是org.apache....

    jsp自定义标签实例

    这是本人自己写的,里面包括传参与不传参的标签,很方便,步骤很详细。所有就上传上来了。

    JSP 自定义标签

    JSP 自定义标签 自定义标签是用户定义...你可以继承SimpleTagSupport类并重写的doTag()方法来开发一个最简单的自定义标签。 创建”Hello”标签 接下来,我们想创建一个自定义标签叫作,标签格式为: 要创建自定义的

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt 完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt 完整版Java JSP web开发教程 12_过滤器(共20页).ppt 完整版Java JSP web开发教程 13_MVC ...

    自定义标签的开发

    本ppt标题是怎么教你使用自定义标签开发jsp,他可以教会我们怎么样灵活运用自定义标签

Global site tag (gtag.js) - Google Analytics