1、JSTL介绍
JSP Standard Tag Library(JSP标准标签库,简称JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
2、JSTL 下载架包
官网下载:http://tomcat.apache.org/taglibs/standard/
如果不使用 JSTL1.0标签,可以忽略taglibs-standard-jstlel包,taglibs-standard-compat包,应该是兼容以前版本标签库,
所以一般只需要 taglibs-standard-impl 和 taglibs-standard-spec 两个jar包,也可以不用下载,在tomcat的webapps\examples\WEB-INF\lib目录copy即可
3、使用
将架包放到项目WEB-INF\lib目录中,Build Path。新建一个jsp页面,引用JSTL标签库即可使用
二、核心标签
核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:
1、一般行为标签
用于在JSP中显示数据,就像用于保存数据用于删除数据用来处理产生错误的异常状况,并且将错误信息储存起来“scope” 是可选的,如果没有使用这个属性,则默认为页面作用域。具体的,当没有使用这个属性时,容器会依次在页面作用域、请求作用域、会话作用域、应用作用域查找。
scope="{page|request|session|application}"
1) 标签
标签用来显示一个表达式的结果,与作用相似,
标签会自动忽略XML标记字符,所以它们不会被当做标签来处理。
属性描述是否必要默认值value要输出的内容是无default输出的默认值否主体中的内容escapeXml是否忽略XML特殊字符否truejstl标签库
使用的表达式结果为null,则输出该默认值
2) 标签
标签用于设置变量值和对象属性。
这个标签之所以很有用,是因为它会计算表达式的值。
属性描述是否必要默认值value要存储的值否主体的内容target要修改的属性所属的对象否无property要修改的属性否无var存储信息的变量否无scopevar属性的作用域否Page如果指定了target属性,那么property属性也需要被指定。
标签生成超链接
其他不常用,需要使用百度一下就可以
3、流程控制标签 与我们在一般程序中用的if一样本身只当做和的父标签的子标签,用来判断条件是否成立的子标签,接在标签后,当标签判断为false时被执行1) 标签
标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。
属性描述是否必要默认值test条件是无var用于存储条件结果的变量否无scopevar属性的作用域否page
亲,请登录
欢迎您,${user.username }
2), , 标签
标签与Java switch语句的功能一样。
属性描述是否必要默认值test条件是无
亲,请登录
欢迎您,${user.username }
10>2
4、控制迭代循环标签
1) 标签
封装了Java中的for,while,do-while循环。迭代一个集合中的对象或者迭代特定次数。
属性描述是否必要默认值items要被循环的信息否无begin开始的元素(0=第一个元素,1=第二个元素)否0end最后一个元素(0=第一个元素,1=第二个元素)否Last elementstep每一次迭代的步长否1var代表当前条目的变量名称否无varStatus代表循环状态的变量名称否无
(1)List集合对象迭代
varStatus 属性index
varStatus 属性current
varStatus 属性count
用户名
性别
年龄
${status.index }
${status.current }
${status.count }
${user.username }
${user.sex }
${user.age }
(2)Map集合对象迭代
用户名
性别
${map1.key }
${map1.value }
用户名
性别
年龄
${user.username }
${user.sex }
${user.age }
(3)List集合对象迭代1
用户名
性别
${map.key}
${map.value }
(4)List集合对象迭代2
用户名
性别
年龄
${user.username }
${user.sex }
${user.age }
(5)迭代特定次数
---
迭代特定次数,1到10的和: 55
2)标签:不常用
通过指定分隔符将字符串分隔为一个数组然后迭代它们。
---
google runoob taobao
三、格式化标签
JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:
标签描述使用指定的格式或精度格式化数字解析一个代表着数字,货币或百分比的字符串使用指定的风格或模式格式化日期和时间解析一个代表着日期或时间的字符串绑定资源指定地区绑定资源指定时区指定时区显示资源配置文件信息设置request的字符编码
1) 标签
标签用于使用不同的方式格式化日期。
属性描述是否必要默认值value要显示的日期是无typeDATE, TIME, 或 BOTH否datedateStyleFULL, LONG, MEDIUM, SHORT, 或 DEFAULT否defaulttimeStyleFULL, LONG, MEDIUM, SHORT, 或 DEFAULT否defaultpattern自定义格式模式否无timeZone显示日期的时区否默认时区var存储格式化日期的变量名否显示在页面scope存储格式化日志变量的范围否页面标签格式模式
代码描述实例G
时代标志
AD
y
不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
2002
M
月份数字。一位数的月份没有前导零。
April & 04
d
月中的某一天。一位数的日期没有前导零。
20
h
12 小时制的小时。一位数的小时数没有前导零。
12
H
24 小时制的小时。一位数的小时数没有前导零。
0
m
分钟。一位数的分钟数没有前导零。
45
s
秒。一位数的秒数没有前导零。
52
S
毫秒
970
E
周几
Tuesday
D
一年中的第几天
180
F
一个月中的第几个周几
2 (一个月中的第二个星期三)
w
一年中的第几周r
27
W
一个月中的第几周
2
a
a.m./p.m. 指示符
PM
k
小时(12 小时制的小时)
24
K
小时(24 小时制的小时)
0
z
时区
中部标准时间
'
转义文本
''
单引号
---
2018-12-27 15:15:29
---与input结合使用
其他格式化使用到再去查
四、JSTL函数JSTL包含一系列标准函数,大部分是通用的字符串处理函数。引用JSTL函数库的语法如下:
函数描述fn:contains()测试输入的字符串是否包含指定的子串fn:containsIgnoreCase()测试输入的字符串是否包含指定的子串,大小写不敏感fn:endsWith()测试输入的字符串是否以指定的后缀结尾fn:escapeXml()跳过可以作为XML标记的字符fn:indexOf()返回指定字符串在输入字符串中出现的位置fn:join()将数组中的元素合成一个字符串然后输出fn:length()返回字符串长度fn:replace()将输入字符串中指定的位置替换为指定的字符串然后返回fn:split()将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回fn:startsWith()测试输入字符串是否以指定的前缀开始fn:substring()返回字符串的子集fn:substringAfter()返回字符串在指定子串之后的子集fn:substringBefore()返回字符串在指定子串之前的子集fn:toLowerCase()将字符串中的字符转为小写fn:toUpperCase()将字符串中的字符转为大写fn:trim()移除首位的空白符
找到 runoob
也不怎么常用: 可查看 菜鸟教程
好多标签都不怎么用,掌握常用的语法模板即可,其他的需要使用再去查。
ends~