JSTL
在需要使用JSTL的jsp页面使用taglib指令导入标签库描述文件:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
taglib指令通过uri属性引用某个标签库的配置文件,jsp页面中通过prefix属性指定的前缀即可访问该标签库中的某个标签功能,语法 <c:标签名>
||--通用标签--||
设置<c:set> 获取<c:out> 删除<c:remove>
---|<c:set>用于设置作用域变量的值或属性值
<c:set var="设置的变量名" value="赋予变量的值" scope="变量的作用域(page request session application)">
<c:set value="赋予JavaBean对象属性值" target="操作的JavaBean对象 可以用EL表达式来表示" property="对应JavaBean对象的属性名">
---|<c:out>用于将计算机的表达式结果输出显示,类似jsp中<%= %> 代码更简洁,方便页面维护
<c:out value="需要输出的表达式的运算结果,可以通过EL表达式来获取">
<c:out value="需要输出的表达式的运算结果" defalut="value值为空时输出的默认值" escapeXml="1"控制是否解析html>
---|<c:remove>用于移除指定作用域内的指定变量
<c:remove var="待移除的变量名称" scope="移除变量所在范围(page request session application) 如果没有指定 默认为page">
||--条件标签--||
--|<c:if>用于实现java语言中的if语句功能
<c:if test="判断条件(为true时执行主体)" var="定义变量存放判断结果可忽略" scope="var定义变量的存储范围(page request session application)" ></c: if>
--|<c:choose>与<c:when>和<c:otherwise>一起实现互斥条件的执行,类似于java语言的if-else if-else语句。
<c:choose var="varName" scope="scope">
<c:when test="condition">
主体内容1
</c:when>
<c:otherwise>
主体内容2
</c:otherwise>
</c:choose>
1<c:choose>是作为<c:when>和<c:otherwise>的父标签使用的,除了空表字符外,<c:choose的标签体只能包含这两个标签>
2<c:when>标签必须有一个直接的父标签<c:choose>,而且必须在同一个父标签下<c:otherwise>标签之前出现。在同一个父标签<c:choose>中,可以有多个<c:when>标签。
3<c:otherwise>标签必须有一个直接的父标签<c:choose>,而且必须是<c:choose>标签中最后一个嵌套的标签
4在运行时,判断<c:when>标签的测试条件是否位true,第一个测试条件为true的<c:when>标签体被jsp容器执行。如果没有满足条件的<c:when>标签,那么<c:otherwise>的标签体将被执行。
||--迭代标签--||
<c:forEach>标签有两种语法格式:一种用于遍历集合对象的成员,另一种用于使语句循环执行指定的次数。
1遍历集合对象的成员
<c:forEach var="对当前对象的引用,即如果当前循环到第一个成员,var就引用第一个成员,如果当前循环到第二个成员,它就引用第二个成员,以此类推" items="被迭代的集合对象" varStatus="用于存放var引用的相关信息,如索引等" begin="表示开始位置,默认为0,该属性可以忽略" end="表示结束位置,该属性可以省略" step="表示循环的步长,默认为1,该属性可以忽略。">
主体
</c:forEach>
2指定语句的执行次数
<c:forEach var="对当前属性的引用"varStatus="用于存放var引用的成员的相关信息,如索引" begin="表示开始的位置,默认为0,该属性可以省略" end="表示结束位置,可以忽略" step="表示循环的的步长,默认为1,该属性可以忽略">
区别: 1和2的区别是 2不是对一个集合的遍历,而是根据指定的begin属性,end属性以及step属性执行主体内容固定的次数。
理解:
String[] str={"i","t","f","h","k"};
for(String s:str)
forEach里var 相当于上面的s
例如:
<%
String[] str = {"e","v","b","j","l"};
request.setAttribute("strkey", str);
%>
<c:forEach var="s" items="${strkey }" begin="0" end="5" varStatus="status">
<!-- <c:out value="${s }"></c:out> -->
${ status.count}:${s }
</c:forEach>
current 当前这次迭代的(集合中的)项
index 当前这次迭代从0开始的迭代索引
count 当前这次迭代从1开始的迭代索引
first 用来表明当前这轮迭代是否为第一次迭代,(boolean)
last 用来表明当前这轮迭代是否为最后一次迭代,(boolean)