- JSTL
- 1.什么是JSTL
- 2.版本
- 3.标签函数库
- 4.优点
- JSTL基本概念
- 标签(Tag)
- 标签库(Tag library)
- 标签库描述文件(Tag Library Descriptor)
- 标签处理类(Tag Handel Class)
- 在Web应用中使用JSTL
- Jar包
- 核心标签库的使用
- 标签库内容
- 国际化标签的使用
- 概念
- 支持国际化的Java类
- JSTL中的国际化常用标签
- 实例:帐号注册页面的国际化例子
- 格式化标签的使用
- 支持格式化的Java类
- 格式化标签
- 总结
JSTL
1.什么是JSTL
JSTL(JavaServer Pages Standard Tag Library)-JSP标准标签库,由SUN公司推出的,由Apache Jakarta 组织负责维护的用于编写和开发JSP页面的一组标准标签。
2.版本
STL的发布包有两个版本:
- Standard-1.0 Taglib
- Standard-1.1 Taglib
3.标签函数库
JSTL所提供的标签函数库主要分为五大类:
- 核心标签库(Core tag library)
- I18N 格式标签库 (I18N-capable formatting tag library)
- SQL标签库(SQL tag library)
- XML 标签库 (XML tag library)
- 函数标签库(Functions tag library)
4.优点
(1)提供一组标准标签
(2)可用于编写各种动态JSP页面
(3)用于访问数据库,有条件地执行代码和支持国有化
JSTL基本概念
标签(Tag)
标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的
标签库(Tag library)
由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库
标签库描述文件(Tag Library Descriptor)
标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系。它是一个配置文件,和web.xml是类似的,一般以 .tld
作为文件的扩展名
标签处理类(Tag Handel Class)
标签处理类是一个Java类,这个类继承了TagSupport或者扩展了SimpleTag接口,通过这个类可以实现自定义JSP标签的具体功能
在Web应用中使用JSTL
Jar包
- 要在Web应用中使用JSTL,需要用到JSTL的jar包,分别是
jstl.jar
和standard.jar
- MyEclipse6.5的开发环境中含有JSTL jar包,在创建Web工程时在”
J2EE Specification Level
“选项下勾选为”Java EE 5.0
“,则JSTL的jar包自动添加到Web应用的lib目录下
核心标签库的使用
标签库内容
核心标签库
- 通用标签
- 条件标签
- 迭代标签
通用标签库
- set
- remove
- out
bush, tom, jack
${acc.accName}
删除后,输出1:userLevel=
cid=
users=
${acc.accName}和猪小戒
输出2:
acc.accName=
acc1.accName=
条件标签
- if
- choose
开户金额不能是负数!
开户金额至少是10元!
开户金额OK!
欢迎你!
你的卡号或密码不正确,请重新输入!
迭代标签
- forEach
- forTokens
例子:使用迭代标签来遍历隐式对象header和cookie集合中的元素
显示请求头的内容和Cookie内容
读取请求头的信息
请求头请求名
${head.key}${head.value}
${head.key}${head.value}
读取cookie里的信息
cookie名cookie值
${cook.key}${cook.value}
${cook.key}${cook.value}
例子:根据步长循环输出数
循环输出数
循环输出数,步长为1
循环输出数,步长为2
...
...
例子:分别使用”|”、”|,”、”_”作为分隔符来分割的字符串是”bule,red,green|yellow|pink,black|white”
使用"|"作为分割符
©
使用"|,"作为分割符
©
使用"_"作为分割符
©
国际化标签的使用
概念
国际化的英文是Internationalization,在第一字母I和最后一个字母N之间共有18个字母,所以简称I18N
国际化是指在软件的设计阶段,就应该使软件具有支持多种语言和国家或地区的功能
一个软件支持国际化,应该具备这些特征:
当软件需要支持新的语言时,不需要修改其代码
文本、消息和图片从源程序中提取出来,存储在外部
软件应该根据用户的语言和地理位置,对与特定文化相关的数据,如日期、时间和货币,进行格式化
支持非标准的字符集
Web应用程序中的国际化是指Web服务器可以根据不同的客户端的当地的语言环境来显示与语言环境匹配的页面内容和对数字、货币等进行格式化,符合当地用户的文化习惯
我们通过更改IE浏览器的语言设置来修改客户端的语言环境
支持国际化的Java类
//返回客户浏览器的首选的语言环境
Locale local = request.getLocale();
//返回支持多语言环境Enumeration对象,按优先级降序排列的Locale对象集合
Enumeration enum = request.getLocales();
- Web应用程序的国际化依赖于两个特定的Java类,分别是java.util.Locale类和java.util.
ResourceBundle类
* Locale类的实例表示了特定的地理、政治和文化地区
* Locale对象本身并不执行和国际化想关的格式化或解析工作,它仅仅负责向本地敏感的类提供本地化信息
* ResourceBundle类称为资源包,它包含特定于语言环境的对象
* 当程序需要一个特定于语言环境的资源时(如String),程序可以从适合当前用户语言环境的资源包中加载它
* Java虚拟机在启动时会自动查询本地的操作系统,为运行环境设置默认的Locale
* Web容器在其本地环境中通常会使用默认的Locale,对于特定的客户端,Web容器会从HTTP请求头中获取Locale信息
* 在Web应用中,用户不需要创建Locale对象实例,Web容器会负责创建Locale实例
JSTL中的国际化常用标签
*
用于重新指定客户端的语言环境
表示设置客户端的本地环境为繁体中文
*
标签体内容
*
用来创建I18N的本地化上下文,并将资源包存储在某个作用域范围中
*
用来给出资源包的输出值
实例:帐号注册页面的国际化例子
message_en.properties和message_zh_CN.properties资源文件
page_title0=\u94F6\u884C\u5E10\u53F7\u6CE8\u518C\u9875\u9762
page_mes1=\u8BF7\u8F93\u5165\u4F60\u7684\u4E2A\u4EBA\u4FE1\u606F
page_mes2=\u5E10\u53F7\uFF1A
page_mes3=\u540D\u5B57\uFF1A
page_mes4=\u5BC6\u7801\uFF1A
page_mes5=\u5F00\u6237\u91D1\u989D\uFF1A
page_action1=\u6CE8\u518C
格式化标签的使用
支持格式化的Java类
- Web应用程序的格式化标签依赖于三个特定的Java类,分别是java.util.TimeZone类、java.text.
DateFormat类和java.text.NumberFormat
* TimeZone类的实例包含了一个与格林威治标准时间(GMT)相比较得出的以微秒为单位的时区偏移量,它还可以用来处理夏令时
* 在Java中,使用时区ID来表示一个时区,美国太平洋时区的时区ID 是”America/Los_Angeles”
* DateFormat类是用来格式化日期/时间的抽象类,它以与语言无关的方式格式化并解析日期或时间
* 使用DateFormat提供的类方法,可以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间Formatter,用来格式化Date对象
* DateFormat可帮助进行格式化并解析任何语言环境的日期
* 在实际的应用中,我们一般使用的比较多的是DateFormat类的子类SimpleDateFormat,因为它能够很方便的使用自定义日期和时间的模式来格式化Date对象
* NumberFormat类是所有数值格式的抽象基类,该类提供格式化和解析数值的接口。NumberFormat类可用于格式化和解析任何语言环境的数值
格式化标签
*
将显示 12.00元
将显示 12.0元
将显示 ¥1,234,567,890.00 (当前Web服务器的语言环境设定为zh_CN)
将显示 123,456.79
将显示 1,200%
总结
- 通用标签用于在JSP页面里面创建、删除和显示中的变量值
- 条件标签用于支持JSP页面中的各种条件
- 迭代标签用于遍历某个集合中的元素
- 国际化标签用来根据客户端的不同语言环境显示不同的页面内容
- 格式化标签可以格式化数字、时间和货币
Original: https://www.cnblogs.com/mllt/p/javaweb-base-tag-lib.html
Author: 萌狼蓝天
Title: 【Javaweb】JSP标准标签库
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611027/
转载文章受原作者版权保护。转载请注明原作者出处!