JSTL
JSTL标签库和EL表达式区别
EL表达式主要替换jsp中的表达式脚本,jstl标签库为了替换代码脚本。
引入
导入jstl标签库的jar包:taglibs-standard
set标签
<%--
set标签:向域中保存数据
域对象.setAttribute(key,value)
scope 属性设置保存到哪个域
page 表示PageContext域
request表示Request域
session表示Session域
application表示ServletContext域
key 用var
value 用value
--%>
<c:set scope="request" var="key1" value="value1"/>
${requestScope.key1} <br>
if标签
if标签:做if判断
test属性表示判断的条件(使用EL表达式)
<c:if test="${12==12}">
<h1>EL表达式成立</h1>
</c:if>
<c:if test="${12!=12}">
<h1>EL表达式不成立,不显示</h1>
</c:if>
choose标签
choose标签开始选择判断 类似switch-case
when标签表示每一种判断情况
test属性 (EL表达式)
otherwise表示其他情况,如果仍要做多个判断,需要再加choose
<c:choose>
<c:when test="${requestScope.height >180}">
<h2>很高</h2>
</c:when>
<c:when test="${requestScope.height >185}">
<h2>也不是特别高</h2>
</c:when>
<c:otherwise>
<h2>这啥</h2>
</c:otherwise>
</c:choose>
forEach标签
一.遍历1-10
begin 索引开始位置
end 索引结束位置
var 表示循环变量 (当前正在遍历到的数据)
<c:forEach begin="1" end="10" var="i">
<h1>${i} <h1>
</c:forEach>
二.遍历Object数组
<%
request.setAttribute("arr",new String[]{"138","180","187"});
%>
<c:forEach items="${requestScope.arr}" var="item">
${item}
</c:forEach>
三.遍历map集合
<%
HashMap<String,Object> map = new HashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
request.setAttribute("map",map);
%>
<c:forEach items="${requestScope.map}" var="entry">
${entry} <br>
${entry.key} <br>
${entry.value} <br>
</c:forEach>
四.遍历List集合
存放JavaBean Student类
items 表示遍历的集合
var 表示遍历到的数据
begin、end 表示开始(结束)遍历的索引值
step 表示遍历的步长值i++
varStatus = “status” 表示当前遍历到的数据的状态 status.getCurrent().getIndex() .getCount() isFirst() isLast() getBegin() getEnd()
<%
List<Student> studentList = new ArrayList<Student>();
for(int i = 1; i <= 10 ; i++) {
studentList.add(new Student(1,"username"+i,"password"+i,21+i,"18013852015"));
}
request.setAttribute("stu",studentList);
%>
<c:forEach items="${requestScope.stu}" var="stu" varStatus="status">
${stu}
${status.count}
</c:forEach>