¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <taglib> <taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri> <taglib-location>/WEB-INF/sql-rt.tld</taglib-location> </taglib> ┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭ JSTL提供了4个主要的标签库:核心标签库、国际化标签库(I18N)与格式标签库、XML标签库、SQL标签库. 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 一二三四五六七八九〇 在这里,我使用了EL表达式和条件操作符来选择是否包含 html 中的 “selected”属性,只有符合条件的 “option” 才被添加 “selected” 属性。如果条件(param.artist==1)为真时,前面的“selected” 才被添加到网页中;否则就添加后面的(在这里是空字符串 ‘’)到页面中。 <select name="artist"> <option value="1" ${param.artist == 1 ? 'selected' : ''}> Vesica Pisces <option value="2" ${param.artist == 2 ? 'selected' : ''}> Cortical Control <option value="3" ${param.artist == 3 ? 'selected' : ''}> Vida Vierra </select> ★★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★★ 核心标签库 --通用标签 --条件标签 --迭代标签 --<c:out> 用法1.<c:out value = "在页面上输出d字符串"> 2.<c:out value = "在页面上输出d字符串">***************</c:out> :标签体中的内容不输出 3.<c:out value="2<10" escapeXml="true"> :escapeXml确定是否应将(<,>,&...)转换成实体代码 4.<c:out value="${requestName}"/> :页面输出<request/session/application中的变量值> 5.<c:out value="${sameName}"/> :同上,会按照reqiest-session-app范围寻找变量输入值 6.<c:out value="${notex}" default="这个值不存在"/> :当变量不存在,输出default值 ╀╁╁╁╁╁╁╁╁╁╁╂╂╂╂╂╂╂╂╂╂╃╃╃╃╂╁╁╀┿┿┾┾┽┽┽ --<c:set> 用法1.<c:set value="hellking" var="userName" scope= "page/request/.../application"/> : <c:out value="${userName}"/> :往作用域对象中存放变量和值 2.<c:set var="name"> value </c:set> <c:out value="${name}"/> :设置name的属性,属性值在body中,然后输出这个属性值. 3.使用前提:<jsp:useBean id="test" class="com.test.Demo"/> <c:set target="${user}" property="userName" value="name"/> <c:set target="${user}" property="password"> value </c:set> userName=<c:out value="${user.userName}"/>, password=<c:out value="${user.password}"/>. 设置javaBean的属性,然后输出这些属性值. ┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰ --<c:remove> 用法1.<c:set value="10000" var="maxUser" scope="application"/> <c:remove var="maxUser" scope="application"/> <c:out value="${maxUser}"/> ┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣ --条件标签 --<c:if> 用法1. <jsp:useBean id="user" class="com.jspdev.ch3.TestBean"/> <c:set value="16" target="${user}" property="age"/> .... <c:if test="${user.age<18}"> 对不起,你还的年龄过小,不能范围这个网页◎! </c:if> 用法2.<c:if test = "testConditino" var = "varName" scope = "page/../application"> var指定test条件的变量的名称 scope指定var的范围 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● --<c:choose> 用法1. <jsp:useBean id="user" class="com.jspdev.ch3.TestBean"/> <c:set value="15" target="${user}" property="age"/> <html> ... <c:choose> <c:when test="${user.age <=18}"> <font color="blue"> </c:when> <c:when test="${user.age<=30&&user.age>18}"> <font color="red"> </c:when> <c:otherwise> <font color="green"> </c:otherwise> </c:choose> 你的年龄是:<c:out value="${user.age}"/> ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ --迭代标签 --<c:forEach> 用法1.<c:forEach var="users" items="${users}"> <tr> <td><c:out value="${users.userName}"/></td> <td><c:out value="${users.password}"/></td> <td><c:out value="${users.age}"/></td> </tr> </c:forEach> →→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ --------------------------前提---------------------------- <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <%@ page import="java.util.*,com.jspdev.ch3.TestBean"%> <% Collection users=new ArrayList(); for(int i=0;i<5;i++) { TestBean user=new TestBean(); user.setUserName("guest"+i); user.setPassword("guest1"+i); user.setAge(20+i); users.add(user); } session.setAttribute("users",users); %> ----------------------------------------------------------- 2.<c:forEach var="i" begin="1" end="10"> <c:out value="${i}"/> --> </c:forEach> <c:forEach var="i" begin="1" end="10" step="3"> <c:out value="${i}"/> --> </c:forEach> 3.<c:forEach var="users" items="${users}" begin="0" end="4" step="3"> <tr> <td><c:out value="${users.userName}"/></td> <td><c:out value="${users.password}"/></td> <td><c:out value="${users.age}"/></td> </tr> </c:forEach> 前提:作用域通信对象中有users变量 4.<c:forEach var="users" items="${users}" varStatus="status"> <tr> <td><c:out value="${users.userName}"/></td> <td><c:out value="${users.password}"/></td> <td><c:out value="${users.age}"/></td> <td><c:out value="${status.index}"/></td> <td><c:out value="${status.count}"/></td> <td><c:if test="${status.first}"> <b></c:if> <c:out value="${status.first}"/></b></td> <td><c:if test="${status.last}"> <i> </c:if> <c:out value="${status.last}"/></i></td> </tr> 前提:作用域通信对象中有users变量 5.<% int[] myIntArray=new int[]{1,2,3,4,5,65,34}; String[] myStringArray=new String[]{"I ","am ","a ","Java","fans"}; Vector v=new Vector(); v.add("this"); v.add("is"); v.add("myEnumeration"); v.add("!"); Enumeration myEnumeration=v.elements(); HashMap myNumberMap=new HashMap(); myNumberMap.put("hellking","23"); myNumberMap.put("guest","23"); myNumberMap.put("guest2","223"); request.setAttribute("myIntArray",myIntArray); request.setAttribute("myStringArray",myStringArray); request.setAttribute("myEnumeration",myEnumeration); request.setAttribute("myNumberMap",myNumberMap); %> <c:forEach var="i" items="${myIntArray}"> <c:out value="${i}"/> ? </c:forEach> <c:forEach var="string" items="${myStringArray}"> <c:out value="${string}"/><br> </c:forEach> <c:forEach var="item" items="${myEnumeration}" begin="0" end="5" step="1"> <c:out value="${item}"/><br> </c:forEach> <c:forEach var="prop" items="${myNumberMap}" begin="1" end="5"> <c:out value="${prop.key}"/> = <c:out value="${prop.value}"/><br> </c:forEach> <c:forEach var="token" items="red,blue,green"> <c:out value="${token}"/><br> </c:forEach> --<c:forTokens> 用法1.<c:forTokens var="token" items="blue,red,green|yellow|pink,black|white" delims="|,"> <c:out value="${token}"/> © </c:forTokens> 用法2.<h4>使用 '-' 作为分割符</h4> <c:forTokens var="token" items="blue--red--green--yellow--pink--black--white" delims="--"> <c:out value="${token}"/> © </c:forTokens> 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓