1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3 <%-- 4 JSTL学习: 5 作用:在jsp页面使用其可以非常方便的进行数据的处理。较与使用java代码块方法,更加的简单,代码更加的简洁易读。 6 使用: 7 核心标签库 8 流程: 9 导入jar包 10 引入标签库 11 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 12 内容: 13 基本标签: 14 out标签:<c:out value="${表达式}" default="默认值"></c:out> 15 作用:结合EL表达式将数据响应给浏览器,如果EL表达式没有取到数据则可以使用default属性声明默认值。 16 set标签: <c:set value="数据" var="键名" scope="作用域名"></c:set> 17 作用:将数据存储到指定的作用域中,默认是pageContext作用域 18 注意: 19 scope的值为:page request session application 20 remove标签:<c:remove var="要删除数据的键名" scope="作用域名"/> 21 作用:删除作用域中的数据,默认是删除四个作用域中的符合要求的数据。 22 但是可以通过scope属性指明要删除的作用域数据。 23 注意: 24 使用pageContext.removeAttriute("键名"), 此方法会将四个作用域中的符合要求的数据全部删除 25 使用pageContext.removeAttriute(String name,int scope) 26 指明要删除的作用域中的数据 scope的值为 1pageContext,2request ,3 session,4 application 27 使用request.removeAttibute("键名") 删除当前作用域符合要求的数据 28 使用session.removeAttibute("键名") 删除当前作用域符合要求的数据 29 使用application.removeAttibute("键名") 删除当前作用域符合要求的数据 30 逻辑标签: 31 单分支判断标签:<c:if test="${表达式}">数据</c:if> 32 作用:可以根据el表达式进行一定程度的单分支逻辑判断。 33 注意: 34 test属性中书写的是EL表达式,或者说是EL表达式的逻辑表达式。 35 该标签只能进行EL表达式相关的逻辑判断。不能进行EL表达式不能获取的数据的逻辑处理 36 多分支判断标签: 37 <c:choose> 38 <c:when test="${表达式}"></c:when> 39 <c:when test="${表达式}"></c:when> 40 .. 41 <c:otherwise></c:otherwise> 42 </c:choose> 43 注意: 44 符合条件后只会执行一个分支,其他分支不会执行。 45 循环标签: 46 <c:foreach> 47 循环体 48 </c:foreach> 49 属性: 50 begin:声明循环的开始位置 51 end:声明循环的结束位置 52 step:声明循环的步长 53 varStatus:声明变量记录循环状态 ,例如变量名:i 54 注意:记录的数据存储到了作用域中可以直接使用El表达式进行获取 55 示例: ${i.index} 获取当次循环的下标 56 ${i.count} 获取当次循环的次数 57 ${i.first} 判断是否是第一次循环 58 ${i.last} 判断是否是最后一次循环 59 items:声明要遍历的数据,可以是集合和数组等 60 注意:要使用EL表达式来获取 61 var:声明变量记录每次遍历的结果。可以做循环体中使用使用EL表达式获取遍历出来的数据 62 --%> 63 <h3>JSTL学习:</h3> 64 <hr /> 65 <% 66 request.setAttribute("str","jstl学习"); 67 %> 68 <!------------------------------------- out标签学习 -------------------------------------------> 69 <%=request.getAttribute("str") %>--${str}--<c:out value="${str}" default="我是out标签"></c:out> 70 <br /> 71 <!------------------------------------------- set标签学习 ------------------------------------> 72 <% 73 request.setAttribute("s1","set标签学习"); 74 75 %> 76 <c:set value="set标签学习2" var="s2" scope="request"></c:set> 77 <c:set value="hello pageContext" var="hello" scope="page"></c:set> 78 <c:set value="hello request" var="hello" scope="request"></c:set> 79 <c:set value="hello session" var="hello" scope="session"></c:set> 80 <c:set value="hello application" var="hello" scope="application"></c:set> 81 ${s1}--${requestScope.s2} 82 <br /> 83 <!-------------------------------- remove标签学习 ----------------------------------------------> 84 <%-- <% 85 pageContext.removeAttribute("hello",4); 86 //request.removeAttribute("hello"); 87 //session.removeAttribute("hello"); 88 %> --%> 89 <c:remove var="hello" scope="request"/> 90 ${hello} 91 <br /> 92 <!-------------------------------------- 单分支判断标签 -------------------------------------------> 93 <c:set var="a" value="12"></c:set> 94 <% 95 int b=4; 96 int a=Integer.parseInt((String)pageContext.getAttribute("a")); 97 if(a>8){ 98 %> 99 <b>今天天气真好,适合学习1</b> 100 <%} %> 101 <c:if test="${a>8}"> 102 <b>今天天气真好,适合学习2</b> 103 </c:if> 104 <br /> 105 <!----------------------------------------多分支逻辑判断 ----------------------------> 106 <c:set var="score" value="40"></c:set> 107 <c:choose> 108 <c:when test="${score>=90}"> 109 <i>奖励苹果电脑一台</i> 110 </c:when> 111 <c:when test="${score<90&&score>=80}"> 112 <i>奖励苹果手机一部</i> 113 </c:when> 114 <c:when test="${score>=70&&score<80}"> 115 <i>无奖励无惩罚</i> 116 </c:when> 117 <c:otherwise> 118 <i>男女混合双打</i> 119 </c:otherwise> 120 </c:choose> 121 <br /> 122 <!-----------------------------------------循环标签 -------------------------------------------------> 123 <c:forEach begin="0" end="5" step="1" varStatus="i"> 124 <c:if test="${i.count==3}"> 125 <u>我是第三次循环</u> 126 </c:if> 127 11111--${i.index}--${i.count}--${i.first}--${i.last}<br /> 128 </c:forEach> 129 130 <!--------------------------------------- 遍历List集合 ----------------------------------------------> 131 <% 132 //创建测试数据list 133 ArrayList<String> list=new ArrayList<String>(); 134 list.add("苹果"); 135 list.add("榴莲"); 136 list.add("荔枝"); 137 //将list存储到作用域中 138 request.setAttribute("list",list); 139 140 %> 141 <c:forEach items="${list}" var="s" varStatus="i"> 142 ${s}--${i.index}--${i.count}<br /> 143 </c:forEach> 144 <!-----------------------遍历map集合 -----------------------------------------------> 145 <% 146 //声明Map集合测试数据 147 HashMap<String,String> hs=new HashMap<String ,String>(); 148 hs.put("s1","唱歌"); 149 hs.put("s2", "跳舞"); 150 hs.put("s3", "敲代码"); 151 //将数据存储到作用域中 152 request.setAttribute("hs", hs); 153 %> 154 <c:forEach items="${hs}" var="s"> 155 ${s.key}--${s.value}<br /> 156 </c:forEach>