2.jsp
<body>
<%
//创建集合
List<User> users = new ArrayList<User>();
User user1 = new User(1, "令狐冲", "男");
User user2 = new User(2, "岳不群", "男");
User user3 = new User(3, "岳灵珊", "女");
User user4 = new User(4, "左冷禅", "男");
User user5 = new User(5, "东风不败", "女");
users.add(user1);
users.add(user2);
users.add(user3);
users.add(user4);
users.add(user5);
//把集合存到request域中
request.setAttribute("userList", users);
String[] citys = new String[] { "武汉", "上海", "天津", "长沙" };
//把数组存到request域中
request.setAttribute("citys", citys);
%>
<!--
forEach标签的两个必需属性:
1.var:设定一个变量名,用该变量存储每次从集合中遍历出来的元素
2.items:要遍历的集合,从作用域中获取
jsp引擎会将每次遍历出来的元素存储到page域对象中,调用pageContext.setAttribute(key, 元素);
存储元素的key就是var,值就是当前遍历出来的元素,以下的遍历,每次都执行pageContext.setAttribute("user",User对象);
forEach标签的可选属性:
1.varStatus:设定一个变量名,该变量存储每次从集合中遍历出的元素的状态信息,该状态信息就是包装了元素的状态的对象,jsp引擎也将它存到作用域对象中,
状态对象有几个属性:index(当前循环的索引,从0开始),count(循环的次数,从1开始),first(是否为第1个位置),last(是否为最后一个位置)
2.begin和end:分别指定遍历的开始位置和结束的位置,如果有begin,没有end,表示从begin位置开始遍历,一直到最后
3.step:每次增长/减少的量,默认值是1,表示索引每次增加1
-->
<h2>遍历集合</h2>
<table width="50%" border="1" cellspacing="0" cellpadding="10">
<tr>
<th>行序号/索引</th>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<c:forEach var="user" items="${userList }" varStatus="st" step="2">
<tr>
<td>${st.count },索引:${st.index}</td>
<td>${user.id }</td>
<td>${user.username }</td>
<td>${user.sex}</td>
</tr>
</c:forEach>
</table>
<h2>遍历数组</h2>
<c:forEach var="c" items="${citys }">
元素: ${c}<br>
</c:forEach>
<h2>遍历一组连续的数字</h2>
<c:forEach var="sn" begin="1" end="10">
${sn }<br>
</c:forEach>
</body>
3.jsp
<body>
<!--
forTokens标签,使用某个字符来分割字符串,并迭代分割后的字符串数组 ,3个必需属性:
1.var:设定一个变量名,用该变量存储每次从字符串数组中遍历出来的字符串
2.items:要分割的字符串
3.delims:指定使用什么分割符
-->
<h2>遍历分割后的字符串数组</h2>
<c:forTokens items="武汉,天津,上海" delims="," var="str">
${str }<br>
</c:forTokens>
</body>
index.jsp
<body>
<%
request.setAttribute("age", 19);
// request.setAttribute("score", 84);
%>
<!-- c:set标签来存储数据到作用域对象中
var:变量名,就是存到作用域中的key
value:指定要存储的数据,可以是简单数据或者对象
scope:可选的,指定数据要存到哪个作用域对象中,默认值是page
-->
<c:set value="84" var="score" scope="request"></c:set>
<!-- 在if标签的test属性上写条件表达式,条件表达式允许用EL -->
<c:if test="${age>=18 }">
你已成年!
</c:if>
<!-- 如果分数>=90,输出优秀,分数>=70并且<90,输出良好,[60,70)输出一般,60以下输出“不及格” -->
<c:choose>
<c:when test="${score ge 90 }">优秀</c:when>
<c:when test="${score ge 70 and score lt 90}">良好</c:when>
<c:when test="${score ge 60 and score lt 70}">一般</c:when>
<c:otherwise>不及格</c:otherwise>
</c:choose>
</body>