JSP標準標簽庫:JSTL
阿新 • • 發佈:2018-02-07
信息 成功 if標簽 p s 安裝包 value 嵌入 map 退出
JSTL(JSP Standard Tag Library),JSP標準標簽庫,可以嵌入在jsp頁面中使用標簽的形式完成業務邏輯等功能。
jstl出現的目的同el一樣也是要代替jsp頁面中的腳本代碼。
JSTL標準標準標簽庫有5個子庫,但隨著發展,目前常使用的是他的核心庫
1.JSTL下載與導入
JSTL下載:
從Apache的網站下載JSTL的JAR包。進入
“http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”網址下載 JSTL的安裝包。
jakarta-taglibs-standard-1.1.2.zip,然後將下載好的JSTL安裝包 進行解壓,此時,在lib目錄下可以看到兩個JAR文件,分別為jstl.jar和standard.jar。
其中,jstl.jar文件包含JSTL規範中定義的接口和相關類,standard.jar文件包含用於實現JSTL的.class文件以及JSTL中5個標簽庫描述符文件(TLD)
將兩個jar包導入我們工程的lib中
jsp文件導入方式:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2.JSTL核心庫的常用標簽
if標簽示例:
<% request.setAttribute("count", 10); %> <!-- jstl標簽經常會和el配合使用--> <!-- test代表的返回boolean的表達式 --> <c:if test="${count==9 }"> xxxx </c:if>
for循環示例:
<!-- forEach模擬 for(int i=0;i<=5;i++){ System.out.println(i) } --> <c:forEach begin="0" end="5" var="i"> ${i }<br/> </c:forEach>
增強for循環:
<!-- 模擬增強for productList---List<Product> for(Product product : productList){ System.out.println(product.getPname()); } --> <!-- items:一個集合或數組 var:代表集合中的某一個元素--> <c:forEach items="${productList }" var="pro"> ${pro.pname } </c:forEach>
if標簽的簡單應用:
根據用戶是否登錄而顯示不同的信息:
<% //模擬用戶已經登錄成功 User user = new User(); user.setId(100); user.setName("張三"); user.setPassword("123"); session.setAttribute("user", user); %>
<!-- 用戶沒有登錄 --> <c:if test="${empty user}"> <li><a href="login.jsp">登錄</a></li> <li><a href="register.jsp">註冊</a></li> </c:if> <!-- 用戶已經登錄 --> <c:if test="${!empty user}"> <li>${user.name }</li> <li><a href="#">退出</a></li> </c:if>
for循環(forEach)標簽示例:
<% //模擬List<String> strList List<String> strList = new ArrayList<String>(); strList.add("qwer"); strList.add("asdf"); strList.add("zxcv"); strList.add("1234"); request.setAttribute("strList", strList); //遍歷List<User>的值 List<User> userList = new ArrayList<User>(); User user1 = new User(); user1.setId(2); user1.setName("lisi"); user1.setPassword("123"); userList.add(user1); User user2 = new User(); user2.setId(3); user2.setName("wangwu"); user2.setPassword("123"); userList.add(user2); application.setAttribute("userList", userList); //遍歷Map<String,String>的值 Map<String,String> strMap = new HashMap<String,String>(); strMap.put("name", "lucy"); strMap.put("age", "18"); strMap.put("addr", "China"); strMap.put("email", "[email protected]"); session.setAttribute("strMap", strMap); //遍歷Map<String,User>的值 Map<String,User> userMap = new HashMap<String,User>(); userMap.put("user1", user1); userMap.put("user2", user2); request.setAttribute("userMap", userMap); %> <h1>取出strList的數據</h1> <c:forEach items="${strList }" var="str"> ${str }<br/> </c:forEach> <h1>取出userList的數據</h1> <c:forEach items="${userList}" var="user"> user的name:${user.name }------user的password:${user.password }<br/> </c:forEach> <h1>取出strMap的數據</h1> <c:forEach items="${strMap }" var="entry"> ${entry.key }====${entry.value }<br/> </c:forEach> <h1>取出userMap的數據</h1> <c:forEach items="${userMap }" var="entry"> ${entry.key }:${entry.value.name }--${entry.value.password }<br/> </c:forEach>
JSP標準標簽庫:JSTL