• 1. 第九章 JSTL基础知识JSTL的全名为JavaServerPages Standard Tag Library,即JSP标准标签库,它是由Apache基金组织的jakarta小组开发维护的,其主要功能是为JSP Web开发人员提供一个标准通用的标签库。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性、降低程序的维护难度。
  • 2. 9.1 JSTL简介JSTL标签是基于JSP页面的,这些标签可以插入在JSP代码中,在本质上JSTL也就是提前定义好了的一组标签,这些标签封装了不同的功能,当在页面上调用这个标签的时候,等于就是调用了封装起来的功能,这些标签可以在页面上输出内容、查询数据库、处理XML文档等,JSTL的标签库基本上可以分为五类,包括JSTL核心库、数据库标签库、XML操作标签库、国际化和格式标签库和函数标签库,其中在核心库包括基本的输入输出、流程控制、循环等功能;数据库标签库主要包括基本的数据库操作功能;XML标签库用来处理XML文档;国际化和格式标签库主要功能是处理国际化和文字格式的标准化。
  • 3. 9.2 JSTL开发环境简单配置如果要在项目中使用JSTL,就需要在配置JSTL的环境,JSTL环境配置非常简单,首先要下载JSTL,(具体内容请参照书。)
  • 4. 9.3 核心标签库JSTL核心库主要有输入输出、流程控制、迭代操作、URL操作等功能,如要要在JSP页面中使用核心库的标签,需要用taglib指令指明这个标签库的路径为。 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 5. 9.3.1 标签标签的功能就相当于JSP中的out对象,可以在JSP页面上打印字符串,也可以打印一个标达式的值。使用语法如下。或者使用下面这种格式。 default value
  • 6. 9.3.2 标签的主要功能是把变量的值设置到JSP内置对象中,或者是设置到JavaBean的属性中。的功能和JSP动作指令中的类似。(具体内容请参照书。)
  • 7. 9.3.3 标签标签执行的功能和标签的功能正好相反,标签可以移除在标签中设置的变量。具体使用语法如下。 在上面这行代码中,必需提供varName属性,指明需要移除哪个变量,而scope的属性则可有可无。
  • 8. 9.3.4 标签和JSP中的if功能一样,的功能也是用来做条件判断,使用语法如下。 结果为真时执行的操作代码
  • 9. 9.3.5 标签标签本身没有具体的功能,它仅仅是做为的父标签。为了方便理解,在这里把合并为一节介绍。(具体内容请参照书。)
  • 10. 9.3.6 标签标签是一个迭代标签,它可以用来做循环的控制,可以循环遍历一个集合中的内容,这里的集合何以是数组、List、Array、ListLinkedList、set、Vector、Map等常用集合对象。(具体内容请参照书。)
  • 11. 9.3.7 标签标签是JSTL种的另一个迭代循环标签,它可以用来对一个字符串进行迭代循环,这个字符串是用符号分开的。(具体内容请参照书。)
  • 12. 9.3.8 标签标签可以把其他动态或者静态的文件包含到当前的JSP页面,功能和JSP动作指令标签类似,但是和不同的是,只可以包含当前Web应用的内容,而标签不仅可以包含当前Web应用的内容,而且还可以包含其他Web应用的内容,包括其他网站的内容。(具体内容请参照书。)
  • 13. 9.3.9 标签标签可以把用户的请求从一个页面转向另一个页面,同JSP中response内置对象的跳转功能类似,这个标签也用两种使用语法,(具体内容请参照书。)
  • 14. 9.3.10 标签标签主要用来产生一个URL,这个标签也有两种使用语法,第一种语法如下。(具体内容请参照书。)
  • 15. 9.3.11 标签标签的作用就是向一个页面传递一个参数,其使用语法如下。
  • 16. 9.3.12 标签标签用来捕捉JSP页面产生的错误,和Java语言中的catch功能是类似的。其使用语法如下。 要捕捉异常的部分
  • 17. 9.4 数据库标签库数据库开发在JSP中占有非常重要的地位,JSTL也提供了对数据库操作的支持,通过是使用JSTL,数据库操作可以简化为简单的几个标签,大大提高了数据库开发的效率和程序的可维护性。在接下来的章节中将详细介绍JSTL数据库操作标签库。
  • 18. 9.4.1 标签标签可以用来设置数据源,其使用语法有两种,第一中语法如下。
  • 19. 9.4.2 标签在上面我们使用标签已经取得了与数据库的连接,在这个数据连接的基础上就可以对数据库进行各种操作,其中对数据库的查询操作就要用到标签, 标签的作用就是从数据库中取出指定的结果集,其中对数据库的操作还是依靠传递SQL语句作为参数。(具体内容请参照书。)
  • 20. 9.4.3 标签标签的功能是对数据库进行更新操作,和标签的用法类似,标签的使用方法也有两种形式,
  • 21. 9.4.4 标签在第七章讲解数据库开发的时候,已经详细介绍过PreparedStatement的使用方法,在使用PreparedStatement进行数据库操作的时候,可以使用类似“select * from stores where stor_id=?”这样的SQL语句,其中问号的位置取代的是一个参数,可以在后面动态设置,这样操作的好处在第七章已经详细介绍过。如果在JSTL中要实现这样的传递参数的功能,就需要用到标签。(具体内容请参照书。)
  • 22. 9.4.5 标签标签和标签的功能和用法完全相同,不同指出是标签是用来设置日期格式的参数,其使用语法如下。 其中,type指明了参数的类型,time是时间格式,date是日期格式,timestamp是日期加时间的完整格式。标签的使用方法和标签是一样的,在这里不再赘述。
  • 23. 9.4.6 标签在JSTL中,同样支持数据库操作的事务处理,在JSTL中是采用标签来实现这个功能的。(具体内容请参照书。)
  • 24. 9.5 XML操作标签库在Java中可以使用SAX或者DOM等API接口来操作XML文档,尽管这种操作功能非常强大而且灵活,但是要很快熟练掌握是有相当大难度的,在JSTL中提供了一组专门处理XML文档的标签,这些标签所提供的功能尽管非常有限,但是已经可以满足基本的XML文档处理需要,而且这些标签学习起来明显比掌握复杂的API接口要容易。接下来的章节中将介绍JSTL中用来处理XML文档的标签。
  • 25. 9.5.1 标签标签可以用来解析一个XML文档,这个标签也有两种基本用法,第一种用法的语法格式如下。
  • 26. 9.5.2 标签使用把一个XML文档解析以后,就可以使用标签输出XML节点的值,在这里的功能和有点类似。标签的使用语法如下。
  • 27. 9.5.3 标签标签的功能和标签的功能类似,这两个标签的功能都是把一个值设置到一个变量中,不同指出在于标签是把XML中某个节点的内容赋值到一个变量。这个标签的使用语法如下。
  • 28. 9.5.4 标签标签的功能和的功能类似,只不错在这里判断的条件变成了XPath表达式,即判断在XML文档中是否有满足这个XPath表达式的节点。标签也有两种使用格式,第一种用法的语法如下。的另一种用法如下。 判断条件成立时执行的操作
  • 29. 9.5.5 标签标签是的父标签,其使用方法和核心库中的对应标签的使用方法类似,只不过在这里的判断条件变成了XPath的表达式,其他使用方法完全相同,在这里可以参考的使用方法。
  • 30. 9.5.6 标签使用标签可以对XML文档进行遍历,这个标签的用法和标签的用法非常相似,这个标签的使用语法如下。 循环体中要执行的内容
  • 31. 9.6 其他标签除了上面介绍的核心库、数据库操作库和XML文档处理库,JSTL还有其他比较常用的标签库,包括处理国际化和格式的标签库、函数标签库,接下来的章节将简单介绍这两个标签库的基本知识。
  • 32. 9.6.1 国际化标签在JSTL可以使用标签设置国家地区参数,从而可以使用本地化的表示方式。另外使用JSTL还可以自动根据Local的设置搜索资源文件,从而实现其他国际化的问题,这样就需要另外几个国际化标签,包括 等,其中 这两个标签用来绑定资源文件,用于显示资源文件,用于传递参数,用来设置请求的字符编码。
  • 33. 9.6.2 数字格式标签JSTL也可以使用不同的格式来表示数字,可以用百分数或者是货币等,下面是一个综合国家地区设置和数字货币格式的示例程序。(具体内容请参照书。)
  • 34. 9.6.3 日期格式标签使用JSTL的标签,可以很方便的处理日期的格式,其中可以把日期格式的对象按照格式输出,而则可以把一个字符串解析成一个日期格式的对象。
  • 35. 9.6.4 函数标签库JSTL函数标签库就是一些常用的函数,在JSTL中把这些常用的函数封装成标签的形式,然后可以在JSP页面上进行方便的调用。(具体内容请参照书。)
  • 36. 9.7 自定义标签库JSTL自带的标签功能非常强大,但是仅仅这些标签并不能完全满足实际开发中的需要,在这个章节将介绍如何定制开发自己的标签库。开发自定义标签,首先需要开发标签所对应的功能类,其次要编写标签的描述文件tld,并把这个文件放在项目的WEB-INFO/目录下,然后才可以在JSP页面上调用自定义的标签。(具体内容请参照书。)
  • 37. 9.8 小结本章介绍了JSTL的基本知识,包括JSTL核心标签库、数据库操作标签库、XML文档处理标签库等,而且还介绍了自定义标签的开发过程,读者在实际的开发过程中可以参考本章的示例程序,在学习本章知识的基础上熟练运用JSTL提高开发速度和质量,并在自己的开发中尝试自定义标签库来简化开发的代码量。