v JSTL
库 URI 前缀
Core http://java.sun.com/jstl/core c
XML processing http://java.sun.com/jstl/xml x
I18N formation http://java.sun.com/jstl/fmt fmt
Database access http://java.sun.com/jstl/sql sql
Ø JSTL定义了简单的表达式语言(EL),用于将行为属性设为在运行时计算出来的动态值。
EL表达式以“${”符开始,以”}”符结尾
Ø 表达式语言操作符:
操作符 执行的操作
. 访问bean的属性或Map条目
[] 访问数组或List元素
() 将子表达式分组以改变操作优先级
+-*/ 数学运算
Empty 对空的变量值(null)或空的String、数组、map、list进行测试
EL语言的empty操作符避免了被迫出来null值和空字符串(“”)之间的差异。Empty
还可以为空的数组、java.urit.List或java.util.Map求值,也就是说它可以用来测试多数常见类型的空的集合。
Ø 隐含的EL变量
变量名 描述
pageScope 所有页面作用域变量的集合(java.util.Map)
requestScope 所有请求作用域变量的集合(java.util.Map)
SessionScope 所有会话作用域变量的集合(java.util.Map)
applicationScope 所有应用程序作用域变量的集合(java.util.Map)
param 所有请求参数的集合,每个参数是单个的String(java.util.Map)
paramvalues
header
headerValues
cookie
initParam 所有应用程序初始化请求参数的集合,每个参数是单个的String
(java.util.Map)
pageContext javax.servlet.jsp.PageContext类的一个实例,提供了对各种请求数据的访
问。
例:<c:out value=”${param.userName}”/>
Ø<c:out>: 把指定为value属性的表达式的结果添加到应答中。
Ø JSTL表达式语言(EL)也支持对bean属性的访问。
<jsp:useBean id=”cartoon”
Class=”com.ora.jsp.CartoonBean”/>
<img src=”images/<c:out value=${cartoon.fileName}>”>
Ø <c:out>
属性名:escapeXml 如果URL编码则true,如果不URL编码则false,默认为true,(可选)
Default:可选,如果值属性为空时使用(可选)
<c:out>在输出时会自动地作URL编码转换
Ø <c:forEach>
属性名: itmes:反复迭代的集合,如果为Null,则不会执行迭代,如果没有指定,则必须指
定开始和结束属性。,(可选)
Var: 迭代时当前元素值,(可选)
varStatus:保存LoopTagStatus对象变量(可选)
begin:第一个索引,该索引从0开始(可选)
end: 最后一个索引,该索引从0开始(可选)
step:每次迭代的索引增量(可选)
例:<c:forEach begin=”1” end=”6”>
… …
</c:forEach>
<c:if>
属性名 描述
Test 判断表达式(必须)
Var 保存boolean结果的变量名称(可选)
Scope 变量作用域,默认为page作用域(可选)
Ø <c:when>
属性名 描述
Test 判断表达式(必须)
<c:choose>会从一组相关的互斥选项中选择一个
例:
<c:choose>
<c:when test=”${param.gender == ‘f’}”>
… …
</c:wher>
<c:otherwise>
… …
</c:otherwise>
</c:choose>
Ø <c:set>
属性名 描述
Value 要设置的值,(必须)
Var 保存值的变量的名称(可选),如果没有指定,就必须使用target和property属性。
Scope var指定的变量的作用域,默认为page作用域
Target 带有property指定的属性的Map或JavaBeans对象(可选)
Property 设置target指定的对象的属性名(可选)