java jstl标签库_JavaEE之JSTL标签库

1af06f7bc09ec07b93fc2ac3a70af77d.png

温馨提示:本文阅读需要8分钟,建议收藏后阅读!

EL表达式很厉害对不对

今天我们来一个更厉害的JSTL

ebf231ca50f07e09bf34a42035ab8a70.png

“为什么说更厉害”

“看完你就知道了”

什么是JSTL

JSP 标准标签库(JSTL : jsp standard tag library)是一个 jsp 标签的集合,它封装了 JSP 应用的通用核心功能,实现 JSP 页面中的逻辑处理。

JSTL的优点

(1) 制作网页时可以使美工像处理HTML标签一样对待JSTL标签,增加了网页的易读性。

(2) 容易实现重用,美工人员更容易学习和掌握。

(3) 容易实现分层的思想。

JSTL的安装与测试

我们可以从 Apache 的标准标签库(Taglibs)中下载的编译好的jar包。下载地址为:http://tomcat.apache.org/taglibs/standard/

fee3902afd20d24235d2448012a8c3d6.png

e39950d7d716208c0061eb2298f63a2f.png

67cee92b42e03c502fac25b25c0ee75e.png

下载的文件有 taglibs-standard-impl-1.2.5.jar、taglibs-standard-spec-1.2.5.jar、taglibs-standard-jstlel-1.2.5.jar 和 taglibs-standard-compat-1.2.5.jar四个。taglibs-standard-impl-1.2.5.jar 和 taglibs-standard-spec-1.2.5.jar两个文件是必须的,将这两个文件拷贝到Web项目的/WEB-INF/lib/下JSTL就算安装完成了。

创建第一个JSTL的Java Web应用

d0dfaa45c9a2cb0b1cf716fc2ddd4883.png

beb5aa6afdface2b815a97f75712e322.png

根据JSTL标签所提供的功能,可以将其分为5个类别:核心标签、XML 标签、格式化标签。、SQL 标签和函数标签。

我们主要是介绍核心标签,因为其他的四个标签现在基本都不用了,想了解的小伙伴可以自行去了解一下。

在使用这些标签库之前,需要使用 taglib 指令导入所需要使用的 JSTL 标签库。

其中,prefix 属性必须为相应标签库的 TLD 文件中的 元素的值,taglib指令的 prefix 属性可以自己随意指定,但最好是采用下表中的建议前缀。

c48f4cdf5303f7ce6388d195543419cd.png

核心标签库

提供几乎所有 Web 应用都要用到的基本功能的标签集合,包括通用标签、条件处理标签、循环处理标签、URL处理标签等。如:用于输出一个变量内容的 标签、用于条件判断的 标签、用于迭代循环的 标签。

JSTL核心标签表

611f9748e1b4988def5fc78f4ae2cc62.png

通用标签

通用标签包括4个标签—、、和,是JSP页面常用功能的标签。

1) 标签

标签用于显示一个表达式的结果,与 JSP 表达式 和 EL 表达式的作用相似。

91ededaa4ad1fe7dfab04bb6435d3545.png

转义字符

ec38d9c8698a5e97f0b04f308d92490f.png

0e7b087f63e9f582805869e933a7ef85.png

010b6f12221b78384aa2cd02554d77ee.png

转义字符和一起演示了,我真机智

2) 标签

标签非常有用,它可以计算表达式的值,然后使用计算结果来设置JavaBean对象或java.util.Map对象的值。

d0fee2f714dfc3fe25b36c22c8e1186e.png

9cca331715a030fa097c1ad5933bc481.png

38b169a94367e352681fc7efcdc2e685.png

标签的目标有两种:var和target。

使用 var 是为了设置属性变量,使用 target 是为了设置 Bean 属性或 Map 的值,设置给定 Bean 或 Map 的 Property/Key 对应的值。

3) 标签

标签用于删除一个变量。

ac081a820d448cb452906804877999ed.png

fbd4b7081123a88baa6d8132bf7b8e2e.png

440f17ca1cd7dae71cab028310cf4c59.png

我们的代码是写在一个页面内的,上面我们获取到 var 的值是“页面内有效”现在我们 之后,再用输出“var”就是默认值“不存在”了,证明标签起到效果了!

4) 标签

标签主要用于处理产生错误的异常状况,可以储存错误信息。 标签很像 Java 语言中的 try/catch 块,不同的地方是 标签同时具有 try 和 catch 的作用,没有 try 标签。

e630a16df7f42fc166caffbaf13e1c63.png

我们先来制造一个异常

7460ec9ebead6d451f8de1b0702606d4.png

80436c2e620c8377ad6e6248c847f47d.png

现在我们来把这个异常 catch 掉,这样在运行的时候,程序就不会报错了。顺便输出一下,报错信息。

0d127b528f8cf6282579bd284af498af.png

de9b5982949a2b1fab6e702c1616d14d.png

看输出程序出错的地方了吧!

条件处理

JSTL 核心标签库中有4个条件标签—、、和。这些标签可以用于根据数据来动态生成页面内容。

1) 标签

标签是简单而常用的条件标签,它判断test属性的表达式的值,如果表达式的值为真则执行标签体的语句。

d7b935c19ac231dcecf891dc0fe2d039.png

这个上面演示了这里就不演示了

2) 和 标签

JSTL 提供 标签来处理多个可选条件的情形。 标签与Java 的 switch 语句功能一样,用于在多个选项中做出选择。switch 语句中有case,而 标签中对应有 ,switch 语句中有 default,而 标签中有 。

和 标签都没有属性。

标签只有一个属性test。

75650f329941cec0fa69299721ba4761.png

代码演示:

d95c960e247c03268d0f104a775d10bf.png

这段代码获取当前的时间,然后进行判断,输出问好语句!

8ad232a1bedd3ffdc6b30d171c862162.png

小伙伴们,下午好!

循环处理

核心标签有两个标签用于循环处理—— 和 ,其中, 标签用于处理数据, 标签用于处理字符串。

1) 标签

标签是更加通用的标签,因为它迭代一个集合中的对象。

432ee95419d80735a3ae75b80394163e.png

标签还可以使用varStatus属性,该属性新建一个变量

创建一个Javabean

633f4c9c9e6e2432763d0f0fea54a564.png

剩下的get()、set()方法就不截了

用一个list列表装起来

8c0f56d50f1434e9b5f10c3b84ff84de.png

写一个监听器

02e3ca5ec73bfa02a2b6aa7a32f3b90c.png

当程序启动时,把学生信息传进去。

100414127565c2f207196120ad58e4cc.png

22567acfb210c7535d96dfd12c7d2105.png

2) 标签

标签用于处理指定分隔符分隔的字符串中的各个子串。

标签的属性与标签相似,但多出来一个 delims 属性,用于指定分隔符。

2b7a778caaf30778b33f3260c32b7f0a.png

f51200891543a126b7d3e86ae0e23b1b.png

d018190d39c050088b1e62534162e924.png

上面的一行是我们的原数据

利用 “,”号进行分割然后输出

就变成下面这样了

还有一个Status属性

4e2ae5000df06afd21659f248cee0737.png

页面效果:

a4beab385e196fa76bd23e44d6f951ab.png

URL处理

JSTL核心标签包含3个处理URL和访问Web资源的标签,这3个标签是、和。

1) 标签

标签提供了所有行为标签所具有的功能,但功能更为强大。

298548d7a9be4150c0e90e5e3636fa11.png

24e06a0f500b68b6c41f804d140aa8b5.png

3893c0b5bf015af2aeb81a764165b19a.png

e35c81f3be25d9cbf67e0744e7f5e79c.png

这样就可以导入别人的网站了!

2) 标签

标签通过自动重写URL来将浏览器重定向至一个新的URL,它需要提供目标URL

6acae1b9e919c9e1e7bd7daafc75ee25.png

3) 标签

标签将URL格式化为一个字符串,然后存储在一个变量中。这个标签在需要的时候会自动采用URL重写。var属性用于存储格式化后的URL。

208df7c5d8a9e1f6f5d2345393639934.png

后面这两个

伙伴们自己琢磨一下吧!

6613c68c36a3b5a96cc1ed467c6ab4a2.png

那么再见了

么么哒!

4fc974e8fd983750d2114617c1b5ae8b.png

有任何问题都可以在文章留言,娜姐都看着的呢!

合作,投稿,转载,版权问题请联系 李娜:Lina_Java

cdf14c41334918ec8422fa5009091604.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值