概述
JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的。
使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码
JSTL标签库的分类
核心标签(用得最多)
国际化标签(I18N格式化标签)
数据库标签(SQL标签,很少使用)
XML标签(几乎不用)
JSTL函数(EL函数)
核心标签库使用说明
JSTL的核心标签库标签共13个,使用这些标签能够完成JSP页面的基本功能,减少编码工作。
从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
表达式控制标签:out标签、set标签、remove标签、catch标签。
流程控制标签:if标签、choose标签、when标签、otherwise标签。
循环标签:forEach标签、forTokens标签。
URL操作标签:import标签、url标签、redirect标签、param标签。
如果你想在项目中使用JSTL和EL表达式,那么你必须要引入这个standard.jar文件和jstl.jar
在JSP页面引入核心标签库的代码为:
表达式控制标签
1.标签(了解)
功能:
标签主要是用来输出数据对象(字符串、表达式)的内容或结果。
通过前面的学习我们知道在使用Java脚本输出时常使用的方式为: 或者
在web开发中,为了避免暴露逻辑代码会尽量减少页面中的Java脚本,使用标签就可以实现以上功能。
JSTL的使用是和EL表达式分不开的,EL表达式虽然可以直接将结果返回给页面,但有时得到的结果为空,有特定的结果处理功能,EL的单独使用会降低程序的易读性,建议把EL的结果输入放入标签中。
语法:
标签的使用有两种语法格式:
默认值
这两种方式没有本质的区别,只是格式上的差别。[escapeXml=”true|false”] [default=”默认值”]这些使用[]属性表示是不是必须的。
属性:
属性名
是否支持EL
属性类型
属性描述
value
true
Object
指定要输出的内容
escapeXml
true
Boolean
指定是否将>、
default
true
Object
如果value为null时所输出的默认值
使用范例:
JSTL: --表达式控制标签“out”标签的使用- (1)
- (2)
- (3)
- (4)
符号。 --%>
(5)(6)使用了默认值(7)(8)(9)运行结果如下:
2.标签(了解)
功能:
标签用于把某一个对象存在指定的域范围内,或者将某一个对象存储到Map或者JavaBean对象中。
语法:
标签的编写共有4种语法格式。
语法1:存值,把一个值放在指定的域范围内。
含义:把一个变量名为name1值为“值1”的变量存储在指定的scope范围内。
语法2:
值2
含义:把一个变量名为name2,值为值2的变量存储在指定的scope范围内。
语法3:
含义:把一个值为“值3”赋值给指定的JavaBean的属性名。相当与setter()方法。
语法4:
值4
含义:把一个值4赋值给指定的JavaBean的属性名。
从功能上分,语法1和语法2、语法3和语法4的效果是一样的,只是把value值放置的位置不同,至于使用那个根据个人的喜爱。
语法1和语法2是向scope范围内存储一个值。
语法3和语法4是给指定的JavaBean赋值。
属性:
使用范例:
(或者使用person.toString()方法)。 --%>
JSTL: --表达式控制标签“set”标签的使用代码给出了给指定scope范围赋值的示例。
标签将data1的值放入page范围中。--%>
把一个值放入page域中:从page域中得到值:${pageScope.data1}标签将data2的值放入request范围中。--%>
把一个值放入request域中:从request域中得到值:${requestScope.data2}标签将值name1的值放入session范围中。--%>
把一个值放入session域中。从session域中得到值:${sessionScope.name1} 把一个值放入application域中。白虎神皇标签输出使得页面规范化。 --%>
使用out标签和EL表达式嵌套从application域中得到值:未得到name的值
未指定scope的范围,会从不同的范围内查找得到相应的值