是什么?
JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标准标签库,是Sun的一个标准,由apache的jakarta小组来实现、维护的。
为什么?
使用JSTL的最大的目的是帮助简化JSP页面作者(这个职位称为pageauthor)的日常工作。page author是指负责使用JSP实现Web应用程序表示层的人员。许多page author是不擅长使用任何编程语言的。
page author面临着使用一种脚本语言(也因此他们被看成了一名Java程序员)去操作JSP页面动态数据的需求,不幸的是pageauthor不得不去面对复杂的不适应他们需要的脚本语言(Java代码)
做什么?
通过避免使用脚本编制元素来简化对 JSP 应用程序的软件维护
JSTL提供以下功能:
(1)一般方法
这些方法补充了表达式语言,使得一个pageauthor很容易的去使用表达式语言,设置和删除JSP作用域的属性值,也可以捕获异常。
(2)流程控制方法
基于标签的控制流程结构(条件、迭代器),对于page authors更加友好
(3)标签库验证器(Tag library validators--TLVS)
TLVS允许程序只接受特定的标签库,也能限制JSP编码格式,免于脚本语言的使用。
怎么用?
JSTL 与 JSP
JSTL的使用是在JSP的基础上引入相应的标签库,简化在JSP页面出现的Java代码,使页面更加简洁。提高页面的可读性以及可维护性。
JSTL 与 EL
EL是Java中的一种特殊的通用编程语言,借鉴于JavaScript和XPath。主要作用是在JavaWeb应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。
与JSTL标记一起作用,能用简单而又方便的符号来表示复杂的行为。
1、语法结构
${expression},expression类似于对象的使用,可以采用.操作符(存取器)来获取,相当于是对JSP中Java代码<%=request.getAttribute("request中存取的变量名")%>的进一步封装,使用更方便
2、支持运算符的使用
==/eq !=/ne </lt >/gt &&/and ||/or !/not //div %/mod
分类
--需要引入相关实现 %@ taglib uri="..." prefix(前缀)="c/fmt/fn" %> (1)Core <c:out value=""> VS ${el表达式} ①default ②escapeXml="" //是否解析html字符串 <c:set> VS <c:remove> 属性:value, <c:if test> --If <c:choose><c:when test><c:otherwise> <c:forEach items var="单个元素变量" varStatus="计数器" begin="" end="" step=""> <c:forTokens items delims var> --使用有特殊符号间隔的字符串 VS fn:split (2)fmt <fmt:formatDate value type patten> <fmt:formatNumber value patten ..> (3)fn ${fn:函数名()} 自定义函数--公共静态方法,并进行tld标签库文件配置
小结
说到底,引入对JSTL的学习,实质上还是表达了分层的思想,页面层的开发是为了展示效果,与后台功能实现还是有所不同的,我们不能期望着页面开发人员都能读懂Java代码,在繁杂的Java代码下进行自己页面开发的工作。有了JSTL就很大程度上降低了这样情况的出现,降低了页面与后台代码的耦合,开发、维护都更加高效!