jstl的配置方法:
1、将jstl.jar和standard.jar拷贝到web-inf/lib下即可(如只使用EL表达式,无需引用这两个包)
2、在jsp页面头部引入taglib方法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core " %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt " %>
<%@ taglib prefix="my" uri="http://www.bjsxt.com/functions " %>
注意:JSTL必须在能够支持J2ee1.4/servlet2.4/jsp2.0版本以上的容器才能运行,这个环境配置
是目前最常用的版本
3、JSTL重点
* EL表达式的用法
* c:out标签
* c:if/c:choose/c:when/c:otherwise标签
* c:forEach标签
* fmt:formatDate标签
* fmt:formatNumber标签
* 函数库的使用
* 自定义函数库
* 定义类和方法(必须定义为public static)
* 编写tld文件,并且将tld文件放到WEB-INF下
* 在jsp中使用taglib指令引入自定义标签库
* 直接使用即可
<h1>测试JSTL核心标签库</h1>
<hr>
<li>测试c:out</li><br>
a(default)=<c:out value="${a}"/><br>
a(el)=${a }<br>
b(defalt)=<c:out value="${b}" default="b value"/><br>
bj(default)=<c:out value="${bj}"/><br>
bj(escapeXml=true)=<c:out value="${bj}" escapeXml="true"/><br>
bj(escapeXml=false)=<c:out value="${bj}" escapeXml="false"/><br>
<p>
<li>条件控制标签c:if</li><br>
<c:if test="${v1 lt v2}" var="v">
boolean value=${v }    v1 小于 v2
</c:if>
<c:if test="${v1 gt v2}" var="v">
boolean value=${v }    v1 大于 v2
</c:if>
<li>条件控制标签c:choose,c:when,c:otherwise</li><br>
<c:choose>
<c:when test="${v1 gt v2}">
v1 大于 v2
</c:when>
<c:otherwise>
v1 小于 v2
</c:otherwise>
</c:choose>
<br>
<c:choose>
<c:when test="${empty valuelist}">
valuelist为空
</c:when>
<c:otherwise>
valuelist不为空
</c:otherwise>
</c:choose>
<p>
<li>循环控制标签:c:foreach</li><br>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:forEach var="user" items="${userlist}">
<tr>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.age}"/></td>
<td><c:out value="${user.relatedGroup.name}"/></td>
</tr>
</c:forEach>
</table>
<p>
<li>循环控制标签:c:foreach varstatus的用法</li><br>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:forEach var="user" items="${userlist}" varStatus="vs">
<c:choose>
<c:when test="${ vs.count % 2 == 0}">
<tr bgcolor="red">
</c:when>
<c:otherwise>
<tr>
</c:otherwise>
</c:choose>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.age}"/></td>
<td><c:out value="${user.relatedGroup.name}"/></td>
</tr>
</c:forEach>
</table>
<p>
<li>循环控制标签:c:foreach</li><br>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:forEach var="user" items="${userlist}" begin="2" end="8" step="2">
<tr>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.age}"/></td>
<td><c:out value="${user.relatedGroup.name}"/></td>
</tr>
</c:forEach>
</table>
<p>
<li>循环控制标签:c:fortoken</li><br>
<c:forTokens items="${tokenstr}" delims="," var="v">
<c:out value="${v}"/>
</c:forTokens>
<p>
<li>循环控制标签:c:foreach-map</li><br>
<c:forEach items="${map}" var="v">
${v}<br>
${v.key}=${v.value }<br>
</c:forEach>