JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要提到jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库
标签库 |
标签库的URI |
前缀 |
Core |
http://java.sun.com/jsp/jstl/core |
c |
从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中
1)<c:if test=" ">标签,其中test是返回boolean的条件
*引入标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 4 <!DOCTYPE html> 5 <html> 6 <head> 7 <meta charset="UTF-8"> 8 <title>Insert title here</title> 9 </head> 10 <body> 11 <% 12 request.setAttribute("count",11); 13 %> 14 15 <!-- test代表的返回 --> 16 <c:if test="${count==10}"> 17 xxx 18 </c:if> 19 <c:if test="count!=10"> 20 yyyy 21 </c:if> 22 23 24 </body> 25 </html>
用法:
将当前用户放到session域,在访问其他资源时,可以从session域中方便取到用户,看是不是登陆了
(当没登录时首页显示 登录注册,登录后显示用户名和退出)
2)<c:forEach>标签
使用方式有两种
1.
2.
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="domain.*"%> 4 <%@ page import="java.util.*"%> 5 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 6 7 <!DOCTYPE html> 8 <html> 9 <head> 10 <meta charset="UTF-8"> 11 <title>Insert title here</title> 12 </head> 13 <body> 14 <% 15 //遍历List<String> strList 16 List<String> strList = new ArrayList<String>(); 17 strList.add("itcast"); 18 strList.add("itheima"); 19 strList.add("ithe"); 20 request.setAttribute("strList", strList); 21 22 //遍历List<User>的值 23 List<User> userList = new ArrayList<User>(); 24 User user2 = new User(); 25 user2.setId("2"); 26 user2.setName("lisi"); 27 user2.setPassword("123"); 28 userList.add(user2); 29 User user3 = new User(); 30 user3.setId("3"); 31 user3.setName("wangwu"); 32 user3.setPassword("123"); 33 userList.add(user3); 34 application.setAttribute("userList", userList); 35 36 //遍历Map<String,String>的值 37 Map<String, String> strMap = new HashMap<String, String>(); 38 strMap.put("name", "lucy"); 39 strMap.put("age", "18"); 40 strMap.put("addr", "西三"); 41 strMap.put("email", "licy@111.com"); 42 session.setAttribute("strMap", strMap); 43 44 //遍历Map<String,User>的值 45 Map<String, User> userMap = new HashMap<String, User>(); 46 userMap.put("user2", user2); 47 userMap.put("user3", user3); 48 request.setAttribute("userMap", userMap); 49 %> 50 51 <!-- List<String> strList --> 52 <c:forEach items="${strList }" var="str"> 53 ${str } 54 </c:forEach> 55 <br /> 56 <br /> 57 58 <!-- List<User> --> 59 <c:forEach items="${userList }" var="user"> 60 ${user.name} : ${user.password } 61 <br /> 62 </c:forEach> 63 <br /> 64 <br /> 65 66 <!-- Map<String,String> --> 67 <c:forEach items="${strMap }" var="entry"> 68 ${entry.key } : ${entry.value } 69 <br /> 70 </c:forEach> 71 <br /> 72 <br /> 73 74 <!-- Map<String,User> --> 75 <!-- entry.key对应 String;entry.value对应User--> 76 <c:forEach items="${userMap }" var="entry"> 77 ${entry.key }: ${entry.value.name }-- ${entry.value.password} 78 </c:forEach> 79 80 </body> 81 </html>
结果:
原文:https://www.cnblogs.com/musecho/p/11284181.html