Part 1 为什么有jstl:
(1)在应用程序服务器之间提供统一的接口,从而提供了web应用在不同服务器的移植
(2)简化jsp于web应用程序的开发
(3)减少jsp代码,使其更加简洁
(4)提高jsp开发速度
在myeclipse建立web工程时勾中jstl即可使用jstl
Part 2 jstl的使用
2.1一般用途
1、c:out
<c:out value="${abc}"/> //相当于request.getAttribute("abc").toString //如果域对象中有相同属性名,则按优先级pagecontext>request>session>application的顺序依次取出
<% User u=new User(); u.setName("小明"); u.setAge(30); request.setAttribute("user1",u); %> <c:out value="${user1.name}"/>2、c:set
<c:set var="abc" value="中国北京“ scope="request"/> //相当于request.setAttribute("abc","中国北京");3、c:remove
<c:remove var="a" scope="rquest"/>4、c:catch
<c:catch var="myexception"> <% int i=8/0; %> </c:catch> <c:out value="${myexception.message}"/>2.2 条件标签
<c:if test="${a=="hello"}"> ok! </c:if>
<c:if test="${rat1.age>3}"> 小老鼠依依年龄大于3 </c:if>2、c:choose
<c:choose> <c:when test="${rat1.age<2}">小老鼠依依年龄小于2</c:when> <c:otherwise>小老鼠依依年龄大于等于2</c:otherwise>2.3 迭代标签
<c:forEach items="${allrats}" var="rat"> <c:out value="${rat.name}"/> <c:out value="${rat.age1}"/> </c:forEach>
<c:forEach var="i" begin="1" end="10" step="3"> <c:out value="${i}"/> </c:forEach>2、forTokens
<c:forTokens items="12;56;你好;ddd" delims=";" var="temp"> ${temp} </c:forTokens>
<c:forTokens items="${temp}" delims=";" var="temp"> </c:forTokens>Part 3 jstl加强
3.1 对map和set的迭代
map:
<c:forEach items="${persons}" var="per"> key=${key.key} 值=${per.value} </c:forEach>set:
<c:forEach items="${myrats}" var="myrat"> value=${myrat.name} || age=${myrat.age} </c:forEach>3.2 如何使用jstl if去判断集合是否为空
<c:if test="${empty myrats}"> 没有老鼠 </c:if>3.3 url相关标签
c:import、c:param、c:redirect
<c:direct url="http://www.sohu.com"> </c:direct>
<c:import url="a.jsp"> <c:param name="name" value="shunping"/> </c:import>3.4 jstl if中也可以写函数
<c:if test="${2>1?true:false}"> ok!!! </c:if>