【Javaweb】JSP标准标签库

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包

  1. 要在Web应用中使用JSTL,需要用到JSTL的jar包,分别是 jstl.jarstandard.jar
  2. 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=

【Javaweb】JSP标准标签库

条件标签

  • 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}

【Javaweb】JSP标准标签库

例子:根据步长循环输出数


    循环输出数
  循环输出数,步长为1

循环输出数,步长为2

...

...

【Javaweb】JSP标准标签库

例子:分别使用”|”、”|,”、”_”作为分隔符来分割的字符串是”bule,red,green|yellow|pink,black|white”

使用"|"作为分割符

 ©

使用"|,"作为分割符

 ©

 使用"_"作为分割符

 ©

【Javaweb】JSP标准标签库

国际化标签的使用

概念

国际化的英文是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

【Javaweb】JSP标准标签库

【Javaweb】JSP标准标签库

格式化标签的使用

支持格式化的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类可用于格式化和解析任何语言环境的数值

格式化标签



【Javaweb】JSP标准标签库

*


 将显示 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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 重启电脑后Mysql无法在cmd运行

    问题描述:如果在cmd窗口显示 ‘mysql’不是内&#x90…

    Linux 2023年6月15日
    0129
  • 手把手教你搭建一个SpringBoot工程

    手把手教你搭建一个SpringBoot工程 首先进入Spring官网,下载Demo工程 像这样设置好 点击下载 将工程导入Idea并打开 在 application.propert…

    Linux 2023年6月14日
    0113
  • 【电台谈心】2022罗翔老师回答毕业生的4个问题

    罗翔老师:谢谢这位同学的问题。我回想起自己找工作的经历,其实也是 一地鸡毛。本科毕业的时候,也没有多少招聘会。我只有一个单位,一个单位地去找。少数几家单位让你进去了,聊了聊又觉得你…

    Linux 2023年6月13日
    0102
  • yum源安装nginx

    nginx使用yum源安装 安装步骤 使用yum源安装依赖 yum install yum-utils 配置nginx.repo的yum文件 vim /etc/yum.repos….

    Linux 2023年6月8日
    099
  • 《拉钩课程 — 分布式技术原理与实战》学习笔记

    1、分布式系统是用来解决集中式架构的性能瓶颈问题,其核心是可扩展性,其特点包括:不出现单点故障、无状态等。依照 CAP 理论,分布式系统只能在 CP 和 AP 之间做取舍。 2、B…

    Linux 2023年6月16日
    0128
  • Python Docstring 风格和写法学习

    什么是Python Docstring 和Java类似,Python也通过注释形式的Docstring给程序、类、函数等建立文档。通过Docstring建立的文档不仅对人来说有更好…

    Linux 2023年6月14日
    090
  • Docker 搭建 Nexus3 私服 | 基本操作

    1 Docker 安装 Nexus3 1.1 创建目录 在硬盘上创建 Nexus3 的主目录: mkdir -p /Users/yygnb/dockerMe/nexus3 为该目录…

    Linux 2023年6月7日
    072
  • 一文教你快速部署OneBlog开源项目

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 OneBlog是什么? OneBlog,一个简洁美观、功能强大并且自适应的Java博客。使用springboot开发,前端使用B…

    Linux 2023年5月27日
    0105
  • 磁盘操作指令 dd

    dd if=/home/thotf/PaperOS/boot/mbr.bin of=/home/thotf/bochs/hd60M.img bs=512 count=1 conv=…

    Linux 2023年6月7日
    0102
  • Red Hat Enterprise Linux (RHEL) 8.5 发布(含下载)

    2021 年 11 月 10 日,红帽企业 Linux (RHEL) 8.5 现已正式发布 (GA),并带来了新功能和改进,以帮助简化部署、优化性能并帮助降低环境中的风险。无论您的…

    Linux 2023年5月27日
    0106
  • ssh远程连接服务

    TCP/22 SSH 应用层协议 作用:远程连接设备, 方便操作 1、本地管理方式 安装系统、故障修复 2、远程连接的方式 centos7.x版本中的ssh默认是开启的,所以查看一…

    Linux 2023年6月7日
    076
  • Linux中安装JDK详细步骤

    一、下载Linux版本的JDK 进入官网下载对应的JDK,下载之前需要先登录 官网地址 -> https://www.oracle.com/ 登录成功后,找到对应的下载位置 …

    Linux 2023年6月7日
    096
  • Shell语法

    在 Shell 中引号分为 2 种:单引号、双引号。 ( 1 )双引号 由双引号括起来的字符,除 $ 、倒引号和反斜线( \ )仍保留其特殊功能外,其余字符通常作为普通字符对待。 …

    Linux 2023年5月28日
    076
  • Centos8.x yum 源配置 解决 yum 不可用

    [root@iZ2ze1e3u7m7oe426pyndaa ~]# cd /etc/yum.repos.d/ [root@iZ2ze1e3u7m7oe426pyndaa yum.r…

    Linux 2023年6月7日
    0114
  • 秒搞VirtualBox 、CentOS 的安装过程

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、介绍背景: VirtualBox : 由德国 InnoTek 软件公司出品 Open Source Software, OS…

    Linux 2023年5月27日
    083
  • 在 Windows 搭建 SVN 服务

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/JIKNVuH5FIwEQMnYGxmRiQ …

    Linux 2023年6月6日
    0120
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球