标签库的如何建立

标签库的如何建立,第1张

以下将一步一步地教你如何建立自定义的标签,具体的例子是扩展JSP,令它拥有自己的HTML编码功能。这个功能将所有的<和>字符用 HTML代码来代替。它可以很容易地扩展为做其它的编码处理。为了简化,这个例子只解释了建立自定义标签的基本要素。 代码中的任何可重用部分都应该放到一个JavaBean中。这一点是很重要的。这样你就可以在其他项目中重用这些代码了。由于任何放置在标签处理器内的代码在标签外都是不可以重用的,因此将可重用的代码部分独立开来是很重要的。在这个例子中,为HTML编码的逻辑是常用的,因此放到JavaBean中,请参看清单B

清单B:HTML编码JavaBean

/* HTML_Format.java */

public class HTML_Format extends Object implements java.io.Serializable {

/** 创建新的HTML_Format */

public HTML_Format() {}

/** 将一个字符串中所有的 <和 >字符用相应的HTML编码代替 */

public String HTML_Encode(String as_data)

{

int li_len = as_data.length()

/*string buffer的长度要比原来的字符串长*/

StringBuffer lsb_encode = new StringBuffer(li_len + (li_len/10))

/* 循环替换全部的<和 >字符 */

for( int li_count = 0 li_count <li_len li_count++)

{ String ls_next = String.valueOf(as_data.charAt(li_count))

if (ls_next.equals(<)) ls_next = <

if (ls_next.equals(>)) ls_next = >

lsb_encode.append( ls_next )

}

return( lsb_encode.toString() )

}

} 标签处理器的代码请参看清单C:

清单C:HTML编码标签处理器

import java.io.IOException

import javax.servlet.jsp.*

import javax.servlet.jsp.tagext.*

public class HTML_FormatTag extends BodyTagSupport

{

/* 1) 在标签末将会调用这个函数 */

public int doEndTag() throws JspTagException

{

try

{

/* 2)得到标签中的文本 */

BodyContent l_tagbody = getBodyContent()

String ls_output =

/* 3)如果标签体有文本,就处理它 */

if(l_tagbody != null)

{

HTML_Format l_format = new HTML_Format()

/* 3a) 将标签体的内容转换为一个字符串 */

String ls_html_text = l_tagbody.getString()

ls_output = l_format.HTML_Encode(ls_html_text)

}

/* 4)将结果写回到数据流中 */

pageContext.getOut().write(ls_output.trim())

}

catch (IOException e)

{ throw new JspTagException(Tag Error: + e.toString())

}

/* 让JSP继续处理以下页面的内容 */

return EVAL_PAGE

}

}

这个处理很简单,它包括有:

1.读入位于开始和结束标签间的文本

2.调用html编码函数

3.将结果返回到JSP页面。 我们需要描述自定义标签以让系统知道如何处理。该描述文件的后缀为.tld,TLD文件通常就以标签处理器命名,并存放在“/WEB-INF/”目录之下。请参看清单D。

清单D:HTML编码标签描述器

<!DOCTYPE taglib

PUBLIC -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN

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

1.0

1.1

HTML_FormatTag

HTML Encoding Tag

HTMLEncode

HTML_FormatTag

Encode HTML 现在可以告诉JSP容器如何使用标签库了。为此要修改web.xml文件,具体说来是要在其中加入一个taglib的项目来注册该标签库,并为标签分配一个URI。URI是Web站点上唯一应用于这一特定标签的索引。由于标签今后还可能用在不同的Web站点上,所以你最好采用完整的URL和/或者包名字(package name)来保证这一唯一性。这个例子是简化了,示例代码请参看清单E。

清单E:修改web.xml文件

<!DOCTYPE web-app

PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.2//EN

http://java.sun.com/j2ee/dtds/web-app_2.2.dtd>

HTMLEncode

/WEB-INF/HTML_FormatTag.tld 自定义的标签设置好后,就可以用在你的JSP页面上了。要做到这一点,只需要在页面上使用taglib指示命令声明所要采用的标签即可。标签通过其唯一的 URI被索引,然后被分配给一个名字空间前缀(prefix)。这一前缀并没有什么特别的意义,只要它不与其它的名字空间冲突便可,可以任意。请参看以下的清单F和G。

清单F:在一个JSP页面上使用HTML编码标签

清单G:范例代码的输出

which displays as:

通过这个标签,我就将该页面的所有代码编码了。所有的自定义标签都是在服务器上处理的。这意味着你将不会在输出的页面上看到自定义的标签。

正如你所看到的那样,建立标签并非难事。最麻烦的是学习标签处理器的整个细节。这是一个很强大的功能,我们不过是触及了皮毛。由于这一过程需要采取的步骤很多,所以刚入门的JSP程序员可能在建立标签的时候会觉得很困惑。

1、进入Apache官网找到,jstl包的链接准备下载,版本可以随意选择,尽量选择比较新的版本。

2、需要下载的jstl包有4个,分别是impl,Spec,el,compat。这4个jar包分别进行下载。

3、下载后的压缩包有四个,找到下载的路径中的包需要引用。

4、将下载的4个jar包复制到新建的工程的lib目录下。

5、将新建的jsp页面中,写上引用连接。

扩展资料:

JSTl基本应用:

1、核心标签库:包括基本的语言功能,变量 *** 作,流程控制等等。

2、国际化和格式化标签库:进行国际化 *** 作和格式化 *** 作,例如格式化时间等等。

3、SQL标签库:主要用于对关系型数据库的存储 *** 作。

4、XML标签库:主要用于对xml格式数据的 *** 作。

5、函数标签库:主要定义对字符串 *** 作的函数库,在EL表达式中运行。

<!-- JSTL 函数 包含一系列标准函数,大部分是通用的字符串处理函数-->

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<!-- JSTL 核心标签库 -->

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!-- JSTL 格式化标签 用来格式化并输出文本、日期、时间、数字 -->

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<!-- JSTL SQL标签库 提供了与关系型数据库进行交互的标签 -->

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

<!-- JSTL XML标签库 提供了创建和 *** 作XML文档的标签 -->

<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11338158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存