1、什么是 JSTL 和 EL 表达式
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。
EL是 JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对 JSTL 操作指定动态属性值。
首先,JSTL现在采用独立于JSP标记的规范来定义。因此,即使JSP规范发生改动,也可以保证JSTL标记的一致性。容易受到JSP容器变更影响的许多应用程序都将受益于JSTL规范。
其次,JSTL具有比核心JSP标记更强大的功能,正如您在最佳实践系列中所视, c:import不仅 可以导入其它站点的URL,而且,它还可以导入 jsp:include 标记不可用的更为复杂的内容。
最后,JSTL使用自己的表达式语言(expression language,EL)。JSTL EL可以相当灵活地写入JSP代码,是对核心JSP语言的有力补充。
在JSP2.0中,通过使用 JSTL + EL,可以开发出没有 Scriptlets 的 JSP 。这就使得 JSP 的开发非常简单,非 JAVA 程序员都能胜任。另外,通过使用 JSTL,可以使编程的代码量大大减少。
developerWords中国 JSTL入门系列:
第1部分, " JSTL 入门:表达式语言" (2003年2月)
通过将常用功能包装到定制标记库的标准集合中,JSTL 使 JSP 作者可以减少对编制脚本元素的需求,甚至可以不需要它们,并避免了相关的维护成本。
第2部分, " JSTL 入门:探讨 core" (2003年3月)
JSTL core 库为一些基本功能(如,管理限定了作用域的变量和与 URL 交互等)和基本操作(如,迭代和条件化)提供了定制标记。这些标记不仅可以由页面设计人员直接利用,而且还为与其它 JSTL 库相结合从而提供更复杂的表示逻辑奠定了基础。
第3部分, " JSTL 入门:表示就是一切" (2003年4月)
JSTL fmt 库中的定制标记支持通过资源束对文本内容进行本地化,并支持对数字和日期的显示和解析。
第4部分, " JSTL 入门:访问SQL和XML内容" (2003年5月)
如果您愿意接受将业务逻辑包含到表示层的结果,这两个库中的标记都使其能够非常轻松地将XML文件和关系数据库中的内容结合到JSP页面。这两个库还展示了当集成<sql:query> 和<c:forEach>时,JSTL库如何构建和集成,以及xml 库利用<c:import> 操作的能力。
其他: JSP 2.0: The New Deal, Part 1 EL 函数部分
当 EL 从 JSTL 规范中移到 JSP 规范中,它使用了一个如何进行函数调用的技巧。这个EL函数语法非常简单:方法名,紧接着在圆括号中有一组参数:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
${fn:length(myCollection)}
JSTL英文帮助文档 Core JSTL: Mastering the JSP™ Standard Tag Library
JSTL详解 (中文,详细的用户手册,网络上有详细的 Word版本下载)
<c:choose>
<c:when test=""> 如果
</c:when>
<c:otherwise> 否则
</c:otherwise>
</c:choose>
pageContext: 提供对页面属性的访问。
${pageContext.request.contextPath} 返回请求的上下文路径 等内置属性。