JSP标签库

原创 2005年04月24日 21:31:00
1.JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。它可以大大简化你在页面中输入各种录入框的代码(诸如此类的代码:<input type="text" name="taxpayerName" value = " ,<select name="collectionItemCode" class="required" style="width:200" ...),并使之结构化。 

2.标签库(Tag libraries)提供了建立可重用代码块的简单方式。但是和COM和J2EE不同的是,你不需要掌握任何额外的技能就可以建立标签库:如果你会编写JSP页面,你就会建立标签库。最后,标签库还改进了Web应用程序的维护性。这种对维护性的改进表现在:轻易地在JSP页面上就实现了基于XML的可定制接口。 

3.一个简单的标签由下面的元素构成: 
  ⑴ JavaBeans:为了得到Java与生具来的面向对象的好处,可重用的代码应该放到一个独立的代码容器中。这些JavaBeans并不是标签库的一部分。不过它是你的代码库用来执行相关任务的基本代码块。 
  ⑵ 标签处理:这是标签库的真正核心。一个标签处理器将引用它需要的任何资源(你的JavaBeans)和访问你的JSP页面的全部信息(pageContext对象)。JSP页面也会将所有已经被设置的标签属性和JSP页面上的标签体中的内容传送给标签处理器。在标签处理器处理完毕后,它将发回输出到你的JSP页面进行处理。 
  ⑶ 标签库的描述(tld文件):这是一个简单的XML文件,它记录着标签处理器的属性、信息和位置。JSP容器通过这个文件来得知从哪里及如何调用一个标签库。 
  ⑷ 网站的web.xml文件:这是你网站的初始化文件,在这个文件中,你定义了网站中用到的自定义标签,以及哪个tld文件用来描述每个自定义的标签。 
  ⑸ 分发文件(一个WAR或者JAR文件):如果你想重用自定义标签的话,你需要一个方法来将它由一个项目转移到另一个项目中。将标签库打包为一个JAR文件是一个简单而且有效的方式。 
  ⑹ 在你的JSP文件中作标签库声明:很简单,如果要用到该标签的话,只要在页面声明一下就可以,其后,你就可以在该JSP页面的任何地方使用它。 

下面是一个实例 

1. 先编写标签处理程序,ATMTag.java 

//用标签处理程序来定义客户标签的工作 

import javax.servlet.jsp.*; 

//导入标签类的驱动 

import javax.servlet.jsp.tagext.*; 

import java.io.*; 

import java.sql.*; 

import java.math.*; 

import java.util.*; 

//实现TagSupport或BodyTagSupport接口 

public class ATMTag extends TagSupport 



Connection connect = null; 

Statement state = null; 

ResultSet result = null; 

public ATMTag() throws ClassNotFoundException 



Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 



//抽象类Tag的方法,标签处理程序的初始化 

public int doStartTag() throws JspTagException 



//指导JSP引擎处理标签的体内容 

return EVAL_BODY_INCLUDE; 



//执行标签任务 

public int doEndTag() throws JspTagException 



try 



//把输出写到JSP页面 

JspWriter out=pageContext.getOut(); 

connect=DriverManager.getConnection("jdbc:odbc:test","sa",""); 

String strQuery = " Select cCounter_id, cAddress,mCashBalance from Counter where mCashBalance<=10000; " ; 

System.out.println("Query: "+strQuery); 

state = connect.createStatement(); 

ResultSet result = state.executeQuery(strQuery); 

String sId=null; 

String sAddress=null; 

String sBalance=null; 

Vector v=new Vector(); 

while(result.next()) 



sId = result.getString(1); 

sAddress = result.getString(2); 

sBalance = result.getString(3); 

v.add(sId); 

v.add(sAddress); 

v.add(sBalance); 

v.add(";"); 



for(int i=0;i<v.size();i++) 



String str=(String)v.elementAt(i); 

pageContext.getOut().write(str); 



}catch(Exception ioe) 



System.out.println(" Error in getting results"+ioe.toString()); 



//指出对JSP页面其余部分求值 

return EVAL_PAGE; 





2. 编写TLD文件的代码: 

//XML验证文档 

<?xml version="1.0" encoding="ISO-8859-1"?> 

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" 

"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> 

<taglib> 

//标签库版本 

<tlibversion>1.0</tlibversion> 

//标签库依赖的JSP版本 

<jspversion>1.1</jspversion> 

//标签库名 

<shortname>ATMjsp</shortname> 

//关于标签库的详细信息 

<info>A Tag library</info> 

<tag> 

//定义标签的名 

<name>ATM</name> 

//指出标签处理程序类 

<tagclass>ATMTag</tagclass> 

//此标签体的定义 

<body-content>JSP</body-content> 

//关于此标签与其功能的附加信息 

<info>Outputs of the ATM counter</info> 

</tag> 

</taglib> 

3. 错误页面errorpage.jsp的代码: 

<html> 

<body> 

<%@ page isErrorPage="true" %> 

<%=exception.getMessage() %> 

</body> 

</html> 

4. 编写JSP文件:ATM.jsp 

<%@ page import="ATMTag" %> 

<%@ taglib uri="ATMjsp.tld" prefix="ATMjsp" %> 

<%@ page errorPage="errorpage.jsp" %> 

<!DocType HTML Public "-//W3C//DTD HTML 4.0 Translational//EN "> 

<html> 

<h3 align=center>ATM counters that needs Cash</h3> 

<table> 

<tr><td></td><td><ATMjsp:ATM/></td></tr> 

</table> 

</html> 

jsp自定义标签库

  • 2017年10月31日 14:30
  • 121KB
  • 下载

TP8【JSP 标准标签库jstl】

  • 2011年12月07日 10:31
  • 380KB
  • 下载

J2EE:JSTL JSP标准标签库

JSTL 主要作用是使开发人员可以像使用HTML标签一样在JSP中开发Java功能 导入JSTL所需jar包jstl.jar 和 standard.jar 放入到web/WEB-INF/lib目录下s...

JSP标准标签库

  • 2015年09月14日 20:54
  • 358KB
  • 下载

jsp自定义标签库注意事项

  • 2009年03月15日 01:23
  • 50KB
  • 下载

实现JSP的TAG标签库的相关知识(待整理)

1. 在 *.tld 文件中,true的用法 rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式. 当在标签里指定tru...
  • hdfyq
  • hdfyq
  • 2011年08月06日 17:34
  • 692

jsp标签库(详细)

  • 2012年09月26日 11:22
  • 178KB
  • 下载

经典入门教程:JSP标准标签库

  • 2009年07月15日 13:39
  • 44KB
  • 下载

jsp核心标签库详情例子

Jstl :Java standard tag libarary  --Java标准标签库。   1) 导入jstl支持的jar包(标签背后隐藏的java代码) 注意:使用javaee5.0的...

JSP Struts之HTML标签库详解.txt

  • 2008年03月09日 09:07
  • 19KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP标签库
举报原因:
原因补充:

(最多只允许输入30个字)