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>