JSTL
1 表达式:${expression}
通过表达式语言,可以简单滴访问JavaBean中的属性。
表达式语言可以方便地访问对象中的属性、提交的参数或者是进行各种数学运算,而且表达式语言如果输出的内容为null,则会自动使用空字符串("")表示。
使用表达式语言可以输出4种属性范围中的内容,如果此时在不同的属性范围中设置了同一个属性名称,则按照如下属性查找:page->request->session->application。
可以指定一个要读取属性的范围:
${pageScope.属性}
${requestScope.属性}
${sessionScope.属性}
${applicationScope.属性}
Servlet容器在遇到表达式中的参数时,通过PageContext.findAttribute("attrName")来查找对应的参数。如,表达式${userName},容器将在page、request、session和application对象中查询userName属性。如果没有找到该属性,则返回null;如果找到该属性,则返回该属性的值。
2 <c:out>
<c:out value="${expression}" [default="defaultValue"] [escapeXml="true|false"]/>
<c:out value="${expression}" [escapeXml="true|false"]>
default value
</c:out>
<c:out>标签用于输出内容,输出value的值,当value的值为null时输出默认值。escapeXml决定是否转换字符串,如将“>”转成“>”,默认为true。
3 <c:set>
用于在某个范围(Request、Session、Application等)中设置某个值,或者设置某个对象的属性。
(1)使用value属性设置一个特定范围中的属性
<c:set var="varName" value="value" scope="page|request|session|application"/>
(2)设置某个特定对象的一个属性
<c:set value="value" target="target" property="propertyName"/>
4 <c:remove>
用于删除某个变量或者属性
<c:remove var="varName" scope="page|request|session|application"/>
5 <c:catch>
捕获由嵌套在它里面的标签抛出的异常。
<c:catch [var="varName"]>
nested actions
</c:catch>
6 <c:if>
用于条件判断,如果其test属性为true,则计算它的body
<c:if test="testCondition" [var="varName"] [scope="page|request|session|application"]>
body content
</c:if>
7 <c:choose>,<c:when>,<c:otherwise>
用于条件选择,与<c:when>及<c:otherwise>一起使用
<c:choose>
<c:when test="testCondition1">
body content 1
</c:when>
<c:when test="testCondition2">
body content 2
</c:when>
<c:otherwise>
body content 3
</c:otherwise>
</c:choose>
8 <c:forEach>
<c:forEach var="varName" items="collection" varStatus="varStatusName" begin="begin" end="end" step="step">
body content
</c:forEach>
9 <c:forTokens>
专门用于处理TokenString的迭代,可以指定一个或者多个分隔符(delimiters)。
<c:forTokens items="stringOfTokens" delims="delimiters" var="varName" varStatus="varStatusName" begin="begin" end="end" step="step">
body content
</c:forTokens>
10 <c:import>
11 <c:redirect>
12 <c:url>
13 <c:param>
14 <x:parse>
15 <x:out>
16 <x:set>