JSTL标签库
JSTL标签库是为JavaWeb开发人员提供的一套标准通用的标签库;
JSTL标签库和EL配合使用可以取代JSP中大部分的Java代码;
在使用JSTL标签库之前需要完成:
- 导入JSTL的开发包
其中常用的标签如下:
1、<c:set></c:set>
– 用于往域中添加属性,或者修改域中已有的属性值
c:set 标签属性总结:
(1)var -- 指定存入作用域中的属性名称
(2)value -- 指定存入作用域中属性的值
(3)scope -- 指定将属性存入哪一个作用域中,默认值是page,表示pageContext域
可取值: a)page表示pageContext域 b)request表示request域
c)session表示session域 d)application表示ServletContext域
代码示例:
<%-- request.setAttribute("name", "张三"); --%>
<c:set var="name" value="张三" scope="request"/>
${ name }
<% String job = "java开发工程师"; %>
<c:set var="job" value="<%= job %>" scope="request"/>
${ job }
<c:set var="name" value="张三丰" scope="request"/>
${ name }
2、<c:if></c:if>
– 构造简单的 if…else…结构语句
c:if 标签属性总结:
test属性 -- 指定一个布尔表达式,当表达式的结果为true时,将会执行(输出)c:if标签中的内容,如果表达式结果为false,将不会输出c:if标签中的内容
代码示例:往域中存入一个成绩, 根据成绩判断成绩所属的等级
<c:if test="${ 3>5 }">yes</c:if>
<c:if test="${ 3<=5 }">no</c:if>
<hr>
<!-- 根据成绩判断成绩所属的等级 -->
<c:set var="score" value="-35"/>
<c:if test="${ score>=80 and score<=100 }">您的成绩属于: 优秀!</c:if>
<c:if test="${ score>=60 and score<80 }">您的成绩属于: 中等!</c:if>
<c:if test="${ score>=0 and score<60 }">您的成绩属于: 不及格!</c:if>
<c:if test="${ score<0 or score>100 }">您的成绩有误!</c:if>
3、<c:forEach></c:forEach>
– 对集合或数组等中元素进行循环遍历或者是执行指定次数的循环.
(1) 遍历域中数组或集合中的元素
<%
String[] name = {"王海涛","刘沛霞","陈子枢","齐雷"};
request.setAttribute( "names", name );
%>
<c:forEach items="${ names }" var="name" varStatus="vs">
${ vs.count }, ${ vs.first }, ${ vs.last }, ${ name } <br/>
</c:forEach>
(2) 遍历域中map集合中的元素
<%
//声明一个map集合并将map集合存入域中
Map<Object,Object> map = new HashMap<Object,Object>();
map.put( "name" , "尼古拉斯.赵四" );
map.put( "age" , 35 );
map.put( "addr" , "中国" );
request.setAttribute( "map1", map );
%>
<c:forEach items="${ map1 }" var="entry">
${ entry } <br/>
</c:forEach>
(3) 遍历0~100之间的整数,将是3的倍数的数值输出到浏览器中
<c:forEach begin="1" end="100" var="i" step="1">
${ i%3==0 ? i:""}
</c:forEach>
<hr/>
<c:forEach begin="1" end="100" var="i" step="1">
<c:if test="${ i%3==0 }">
${ i }
</c:if>
</c:forEach>
c:forEach 标签属性总结:
(1)items: 指定需要遍历的集合或数组
(2)var: 指定用于接收遍历过程中的每一个元素
(3)begin: 指定循环从哪儿开始
(4)end: 指定循环到哪儿结束
(5)step: 指定循环时的步长, 默认值是1
(6)varStatus: 用于表示循环遍历状态信息的对象, 这个对象上有如下属性:
first属性: 表示当前遍历是否是第一次, 若是, 则返回true;
last属性: 表示当前遍历是否是最后一次, 若是, 则返回true;
count属性: 记录当前遍历是第几次
代码示例:
更多:
https://www.runoob.com/jsp/jsp-jstl.html