1 ????<%-- 保存数据 --%> 2 ????<c:set></c:set> 3 ?4 ????<%-- 获取数据 --%> 5 ????<c:out value=""></c:out> 6 ?7 ????<%-- 单条件判断 --%> 8 ????<c:if test=""></c:if> 9 10 ????<%-- 多条件判断 --%>11 ????<c:choose></c:choose>12 ????<c:when test=""></c:when>13 ????<c:otherwise></c:otherwise>14 15 ????<%-- 用于迭代(循环) --%>16 ????<c:forEach></c:forEach>17 ????<c:forTokens items="" delims=""></c:forTokens>18 19 ????<%-- 重定向 --%>20 ????<c:redirect></c:redirect>
1.<c:set/>给域对象赋值
JSTL标签 ???var:数据的名称 ???value:保存的数据值 ???scope:保存到哪个域 ???????page:page域 ???????request:request域 ???????session:session域 ???????application:application域
1 ??????<%-- 2 ??????????<c:set/> 给域对象赋值 3 ???????--%> 4 ???????<%-- jsp脚本 --%> 5 ???????<% 6 ???????????//String name = "eric"; 7 ???????????//pageContext.setAttribute("name", name); 8 ???????%> 9 ???????<%-- 10 ???????????JSTL标签11 ????????????var:数据的名称12 ????????????value:保存的数据值13 ????????????scope:保存到哪个域14 ????????????????page:page域15 ????????????????request:request域16 ????????????????session:session域17 ????????????????application:application域18 ????????--%>19 ???????<c:set var="name" value="jacky" scope="request"/>20 ???????${requestScope.name}
2.<c:out/>获取域对象的数据
value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取default:默认值。当前需要获取的内容为null时,那么使用默认值代替escapeXml:默认情况下为true,out标签会把输出的内容进行转义。如果不需要转义,则为false即可。
1 ????<%-- 2 ??????2. <c:out/> 获取域对象的数据 3 ?????--%> 4 ????<%-- EL表达式 --%> 5 ?????${name }<br> 6 ????<%-- 7 ??????value:代表获取域中的某个域中的名称内容,如果数据在域中,必须使用EL表达式去获取 8 ???????default:默认值。当前需要获取的内容为null时,那么使用默认值代替 9 ???????escapeXml:默认情况下为true,out标签会把输出的内容进行转义。如果不需要转义,则为false即可。10 ??????--%>11 ????<c:out value="${name }" ?default="<h3>默认值</h3>" escapeXml="false"></c:out>
3.<c:if/>单条件判断
test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。
1 <%--2 ????3.<c:if/>单条件判断3 ?--%>4 <%--5 ????test:条件表达式。返货true的时候,就会执行if标签体的内容,否则不执行。6 --%>7 <c:if test="${10 > 8}">8 ??????<input type="submit" value="提交"/>9 </c:if>
4.<c:choose/>+<c:when/>+<c:otherwise/>多条件判断
1 <%-- 2 ????4.<c:choose/>+<c:when/>+<c:otherwise/> 多条件判断 3 ?--%> 4 <%--模拟登录 --%> 5 <c:set var="user" value="jacky" scope="session"/> 6 <c:choose> 7 ????<c:when test="${!empty sessionScope.user }"> 8 ???????欢迎回来,你的用户名是:${sessionScope.user},<a href="">【退出登录】</a> 9 ????</c:when>10 ????<c:otherwise>11 ????????请先<a href="">注册</a>或<a href="">登录</a>12 ????</c:otherwise>13 </c:choose>
5.<c:forEach/>用于迭代或循环
begin:从哪个元素开始遍历,从0开始 可以不写end:到哪个元素为止 ?可以不写step:增加步长。默认为1 可以不写items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取var:每个元素名称varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始
1 <%-- 2 ????5.<c:forEach/>用于迭代或循环 3 --%> 4 <% 5 ????//List集合 6 ????List<Student> list = new ArrayList<Student>(); 7 ????list.add(new Student("abc","123")); 8 ????list.add(new Student("def","123")); 9 ????list.add(new Student("ghi","123"));10 ????list.add(new Student("jkl","123"));11 ????pageContext.setAttribute("list", list);12 %>13 EL表达式:<br>${list[0]}<br>${list[1]}<br>${list[2]}<br>${list[3]}<br>14 <%--15 ???????begin:从哪个元素开始遍历,从0开始 可以不写16 ???????end:到哪个元素为止 ?可以不写17 ???????step:增加步长。默认为1 可以不写18 ???????items:需要遍历的数据。(数组|List集合|Map集合),如果是获取域的数据,那么使用EL表达式获取19 ???????var:每个元素名称20 ???????varStatus:当前状态对象。该对象封装当前元素状态信息。例如count属性:表示当前遍历的是哪个元素,从1开始21 --%>22 JSTL标签:<br>23 <c:forEach items="${list}" var="student" varStatus="varStats">24 ????????学生${varStats.count} :${student}<br>25 </c:forEach>26 <hr/>27 <%28 ????????//Map集合29 ??????Map<String,Student> map = new HashMap<String,Student>();30 ??????map.put("001", new Student("eric","1234"));31 ??????map.put("002", new Student("rose","1234"));32 ??????map.put("003", new Student("jacky","1234"));33 ??????pageContext.setAttribute("map", map);34 ??????????%>35 EL表达式:<br>${map[‘001‘]}<br>${map[‘002‘]}<br>${map[‘003‘]}<br>36 JSTL标签:<br>37 <%--38 ??????注意:forEach标签遍历Map集合时,把每个Map的对象使用Entry封装,Entry封装键对象和值对象,39 ??????通过getKey()获取键对象,通过getValue()获取值对象40 --%>41 <c:forEach items="${map}" var="entry" varStatus="varStats">42 ??????<%--学生${varStats.count}:${student}<br> --%>43 ??????编号:${entry.key} - 姓名:${entry.value.name} - 密码:${entry.value.password}<br>44 </c:forEach>
JSTL核心标签库
原文地址:https://www.cnblogs.com/chromer/p/jstl.html