1.jstl是什么
java standard tag lib java标准标签库
由apche开发的 jsp标签,捐献给了sun公司。sun命名为jstl。
2.如何使用jstl
(1)将jstl相关的jar文件拷贝到WEB-INF\lib下。
注:如果使用javaee5.0(包含了jstl相关的jar文件)一般不需要再拷贝。
若容器中没有自带包会报500错误。
(2)使用taglib指令导入相应的标签。
<%@taglib uri="http://www.jiaqi.com.cn/tag" prefix="c"%>
uri是一个命名空间。
prefix是命名空间的前缀(别名)。
注:命名空间(namespace)是为了区分同名元素而设置的一个字符串。包名也是这个作用。
3.jstl几个核心的标签
(1)if标签,等价于java语言中if(){},类似于c语言中的 ifdef___endif
<c:if test:=" " var="flag" scope="request">
标签体
</c:if>
当test属性值为true时,容器会执行标签体的内容。
test属性可以使用el表达式来计算。·用的较多。
var属性用来指定绑定名称。用的较少。
scope属性用来指定绑定的范围。可以是requset,session,applicaton, page(pagecontext)。用的较少。
上文中则相当于执行了 request.setAttribute("flag")="test属性中el表达式的值";
(2)choose标签,等价于java语言中的if()...elseif()...elseif()...语句
<c:choose>
<c:when test=" ">
</c:when>
<c:otherwise>
</c:otherweise>
</c:choose>
when可以出现1次或者多次,表示一个分支,当test属性值为true时,会执行该分支。
otherwise可以出现0次或1次,表示例外。
(3)forEach标签,用来遍历集合或数组
<c:forEach items=“” var=“ ” varStatus=" ">
</c:forEach>
items属性:用来指定要遍历的集合或者数组,可以使用el表达式。
var属性:用来指定一个绑定名,绑定范围固定是pageContext。
注:每次从集合或者数组中取一个元素,然后将其绑定到pageContext上,绑定名有var属性来指定。
varStatus属性:用来指定一个绑定名称。绑定范围固定是pageContext,绑定值是一个特殊的对象,可获得当前遍历状态。该对象的属性有index(下标,从0开始),count(第几次遍历从1开始)。
该对象提供了一些方法,用来获得当前遍历的状态。
getIndex():获得当前遍历的元素的下标。
getCount()获得当前是第几次遍历。