• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

JSP Standard Tag Library (JSTL)介绍

发布: 2007-7-14 21:19 | 作者: 佚名    | 来源: 网络转载     | 查看: 25次 | 进入软件测试论坛讨论

领测软件测试网 "JSP Standard Tag Library: Learning JSTL"的作者bayern向您介绍有关JSP Standard Tag Library的一些基础知识(它的历史、目标、计划),包括对expression language(一种更简洁的脚本语言,在文中被描述为下一代的JSP)和开发自己的custom tag的一些简单介绍,以及一些JSTL的后续文章的资源指导...

一种新的动态web设计语言
当我加入Java Community Process(JCP)去创建JSP Standard Tag Library标准和实现的时候,我自己都没想到会完全改变以前对JSP的看法。JSTL表面看起来只是JSP一个插件,但事实上它也可以算上是一种新的用于构建动态web页的语言。

无论是对程序员非程序员,JSTL提供了诸如循环、条件、数据库访问、XML处理、国际化(i18n)等开发上的工具和流程,本文主要介绍它的基础知识--它的历史\目标\计划

什么是JSTL?
JSTL是一组型如HTML的标签(tag)使你即使不需要学习Java也可以编写动态web页。在2002年中期发布后,它将会作为JSP平台的一个标准组成部分。使用JSTL你可以不需要按以往传统的语言编程方式来创建用于读取XML、访问数据库等各种任务的web页。

JSTL是建立在JSP上的某种custom actions(自定操作)或custom tags(自定标签),下面我们来走近JSTL

当一些传统的编程语言比如象java出现在web页中,他们需要包含在一些标记中,比如在Jsp中:

<body>
<p>
We have now stolen <%= session.getAttribute("dollars") %>
from your credit-card account. Please stop by again.
</p>
</body>

所有的Java代码被包含在<%...%>中 ,<%=...%>用来直接输出表达式和变量,这点大家都很熟悉,这看其来也很简单,但是对一个JSP项目来说,需要在很多地方嵌入JAVA代码,如果web设计者只会用HTML而不是Java,那他需要一些Java程序员的协助来修改<% ... %>中的java代码,另外这样还会给项目带来分工上的困难

为了要解决这种问题,JSP提供了custom tags的机制,使一些tags看起来像是HTML,但实际上这些tags却连接了一些Java代码,比如一个java程序员写了一个显示人名的方法,使用<user:firstName>的tag来调用这个方法,这样一个页面的代码可能会象如下的样子:
<p>
Dear <user:firstName/>,
</p>

JSTL:标准的tag
不同的需要会使用不同的custom tags,比如一些用来遍历数据产生表格和列表,另一些用来访问数据库或者读取XML文件

一些JSP容器的厂商和开放源代码组织为一般的应用提供了很多tag,这些被成为tag libraries,比如说JRun提供了自己的tag libraries,Jakarta项目组也提供了用于XML处理、HTML表单生成、数据库访问的tag libraries

许多的开发者使用某种tag libraries,这种方法不是标准化的,比如当你项目迁移了应用平台,你以前所使用的tag library可能就无法再使用了,有的可能依赖于Jakarta的 Taglibs,有的依赖JRun的library。为了要解决这种分裂局面Java Community Process决定提供自己的标准tag library,JSTL 1.0是该标准的第一个版本,它支持以下基本任务:

遍历数据来产生表格,列表等

条件操作 (比如 当超过18岁时显示成人内容)
导入和处理其他web页的数据
简单的xml处理
数据库访问
文本格式和国际化

JSTL 1.0 将会于2002中期发布,The JSP Standard Tag Library这本书将会详细介绍这些内容

一个新的名词 “expression language”

在JSTL中最大的改变在于,它介绍了下一代的JSP:一种expression language,它将会取代JSP中传统的java表达式
比如表达式

<%= session.getAttribute("username").getFirstName() %>

将会改变为更为简单的形式:

${sessionScope.username.firstName}

这种JSP/JSTL的expression language将会使用比JavaScript更为简单的语法

expression language并不是通用语言,它是专门为JSP设计的,它的目的是使jsp可更简单的访问数据。该语言使页面通过scopes来访问数据信息,所谓scopes是jsp环境中定义的一些按不同的生命周期划分的一个集合数据。在图1中可以了解scope的含义expression language(一些细节仍在JCP的专家组中创建)最常使用的是request参数和cookie

图1:JSP使你可以在scope中组织你的数据,比如一些全局的数据在整个application scope中,一些面对用户的数据在session中,实现所有这些数据的访问都不需要你写任何Java代码(本图来自JSP Standard Tag Library第2章)

对程序员也有好处
虽然JSTL的主要听众是web开发者,但JSTL也同样为Java程序员带来一些东西,可以使Java程序员更容易的开发出自己的custom tags
,要开发custom tag,需要了解相应的API的用于管理生命周期的tag handlers(有关tag handlers的信息,请参阅JSP Tag Libraries ,by Shachor, Chace, and Rydin)

JSTL提供了一系列的基类来帮助开发员开发自己的tags。比如如果你要实现一个iteration tag,你只要关心怎样去实现java.util.Iterator,你用不着关心如何处理类似doStartTag() 和 doAfterBody()用于处理tag-handler的方法。相应的,要实现一个conditional tag,只要简单的编写一个返回boolean的方法(这些在JSP Standard Tag Library的第4部分会有详细介绍)

当然JSTL同样带来了很多易用的工具:对数据库访问的预编译tag、预测试tag、XML处理等等。使用expression language的JSTL将会在2002年中期发布,实验性的实现将会在Jakarta Taglibs的网页中出现

About the Author
Shawn Bayern is the reference-implementation lead for JSTL and the author of Manning´s "JSP Standard Tag Library: Learning JSTL," which will be available July, 2002.

英文原文:Introducing the JSP Standard Tag Library (JSTL)
转载自 http://mag.javadigest.net

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网