Java_JSP2_查询标签(带属性标签);

特别说明:如果能帮助到您,请您留下点滴痕迹,让我知道我的存在是有意义的;如果不能帮助到您,请接受我的歉意;

文章简介:本文说明带属性的标签如何定义。QueryTag标签为连接数据库并取得到数据,最后显示出来!

=>QueryTag.java

package lee;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
import java.sql.*;
/**
 * QueryTag_class
 * description:带属性标签体,查询标签;
 * @author cyb_23
 * @version  1.0
 */
public class QueryTag extends SimpleTagSupport
{
	//标签的属性
	private String driver;
	private String url;
	private String user;
	private String pass;
	private String sql;

	//driver属性的setter和getter方法
	public void setDriver(String driver)
	{
		this.driver = driver;
	}
	public String getDriver()
	{
		return this.driver;
	}
	
	//url属性的setter和getter方法
	public void setUrl(String url)
	{
		this.url = url;
	}
	public String getUrl()
	{
		return this.url;
	}
	
	//user属性的setter和getter方法
	public void setUser(String user)
	{
		this.user = user;
	}
	public String getUser()
	{
		return this.user;
	}
	
	//pass属性的setter和getter方法
	public void setPass(String pass)
	{
		this.pass = pass;
	}
	public String getPass()
	{
		return this.pass;
	}	
	
	//sql属性的setter和getter方法
	public void setSql(String sql)
	{
		this.sql = sql;
	}
	public String getSql()
	{
		return this.sql;
	}	
	
	//conn属性的setter和getter方法
	public void setConn(Connection conn)
	{
		this.conn = conn;
	}
	public Connection getConn()
	{
		return this.conn;
	}
	
	//stmt属性的setter和getter方法
	public void setStmt(Statement stmt)
	{
		this.stmt = stmt;
	}
	public Statement getStmt()
	{
		return this.stmt;
	}	
	
	//rs属性的setter和getter方法
	public void setRs(ResultSet rs)
	{
		this.rs = rs;
	}
	public ResultSet getRs()
	{
		return this.rs;
	}
	
	//rsmd属性的setter和getter方法
	public void setRsmd(ResultSetMetaData rsmd)
	{
		this.rsmd = rsmd;
	}
	public ResultSetMetaData getRsmd()
	{
		return this.rsmd;
	}


	//执行数据库访问的对象 
	private Connection conn = null;
	private Statement stmt = null;
	private ResultSet rs = null;
	private ResultSetMetaData rsmd = null;

	public void doTag() throws JspException,IOException
	{
	   	try
		{
			//注册驱动
			Class.forName(driver);
			//数据库连接
			conn = DriverManager.getConnection(url,user,pass);
			//创建Statement对象
			stmt = conn.createStatement();
			//执行查询
			rs = stmt.executeQuery(sql);
			rsmd = rs.getMetaData();
			//获取列数目
			int columnCount = rsmd.getColumnCount();
			//获取页面输出流
			Writer out = getJspContext().getOut();
			//在页面输出表格
			out.write("<table border='1' bgColor='#9999cc' width='400'>");
			//遍历结果集
			while (rs.next())
			{
				out.write("<tr>");
				//逐列输出查询到的数据
				for (int i = 1 ; i <= columnCount ; i++ )
				{
					out.write("<td>");
					out.write(rs.getString(i));
					out.write("</td>");
				}
				out.write("</tr>");
			}
		}
		catch(ClassNotFoundException cnfe)
		{
			cnfe.printStackTrace();
			throw new JspException("自定义标签错误" + cnfe.getMessage());
		}
		catch (SQLException ex)
		{
			ex.printStackTrace();
			throw new JspException("自定义标签错误" + ex.getMessage());
		}
		finally
		{
			//关闭结果集
			try
			{
				if (rs != null)
					rs.close();
				if (stmt != null)
					stmt.close();
				if (conn != null)
					conn.close();
			}
			catch (SQLException sqle)
			{
				sqle.printStackTrace();
			}
		}
	}
}

=>mytaglib.tld

<?xml version="1.0" encoding="GBK"?>
<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.crazyit.org/mytaglib</uri>

	<!-- 定义第一个标签 -->
	<tag>
		<!-- 定义标签名 -->
		<name>helloWorld</name>
		<!-- 定义标签处理类 -->
		<tag-class>lee.HelloWorldTag</tag-class>
		<!-- 定义标签体为空 -->
		<body-content>empty</body-content>
	</tag>

	<!-- 定义第二个标签 -->
	<tag>
		<name>query</name>
		<tag-class>lee.QueryTag</tag-class>
		<body-content>empty</body-content>
		<!-- 配置标签属性:driver -->
		<attribute>
			<name>driver</name> 
			<required>true</required>
			<fragment>true</fragment>
		</attribute>
		<!-- 配置标签属性:url -->
		<attribute>
			<name>url</name> 
			<required>true</required>
			<fragment>true</fragment>
		</attribute>
		<!-- 配置标签属性:user -->
		<attribute>
			<name>user</name> 
			<required>true</required>
			<fragment>true</fragment>
		</attribute>
		<!-- 配置标签属性:pass -->
		<attribute>
			<name>pass</name> 
			<required>true</required>
			<fragment>true</fragment>
		</attribute>
		<!-- 配置标签属性:sql -->
		<attribute>
			<name>sql</name> 
			<required>true</required>
			<fragment>true</fragment>
		</attribute>
	</tag>
</taglib>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值