1、JSTL概述
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。
JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库。
使用JSTL一般配合EL表达式来使用 一般使用的也是核心库Core
标签库 | 前缀 |
---|---|
Core | c |
I18N | fmt |
XML | x |
SQL | sql |
Functions | fn |
2、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)
使用jsp的taglib指令导入核心标签库
3、JSTL核心库的常用标签
//1.<c:if test=" "></c:if>
//这里test是返回Bealean类型的条件
//通常test里面要配合EL表达式来使用 否则解析有问题
eg:
<c:if test="${1==1}">
xxxx
</c:if>
<%
int flag = 10 ;
request.setAttribute("flag",flag);
%>
<c:if test="${flag==10}">
xxxx
</c:if>
//2.<c:forEach>标签
2.1: <!--
forEach模拟
for(int i = 0 ; i <10; i++){
syso(i);
}
-->
<c:forEach begin="0" end="10" var="i">
${i }<br>
</c:forEach>
2.2: <!--
forEach增强模拟
for(User user:userlist){
syso(user.name)
}
-->
<c:forEach items="${userlist }" var="user">
${user.name }
</c:forEach>
2.3: 遍历List<String>的值
<%
List<String> list = new ArrayList<String>();
list.add("zhangsan");
list.add("lisi");
application.setAttribute("list", list);
%>
<c:forEach items="${list }" var="list">
${list }<br>
</c:forEach>
2.4:遍历List<User>的值
<%
List<User> userList = new ArrayList<User>();
User user1 = new User();
user1.setName("lisi");
user1.setPassword("123");
userList.add(user1);
User user2 = new User();
user2.setName("wangwu");
user2.setPassword("123");
userList.add(user2);
application.setAttribute("userList", userList);
%>
<c:forEach items="${userList }" var="uL">
${uL.name }----${uL.password }<br>
</c:forEach>
2.5遍历Map<String,User>的值
<%
Map<String,User> userMap = new HashMap<String,User>();
userMap.put("user1", user1);
userMap.put("user2", user2);
request.setAttribute("userMap", userMap);
%>
<c:forEach items="${userMap }" var="entry">
${entry.key }:${entry.value.name } ---- ${entry.value.password } <br>
</c:forEach>
2.6遍历Map<User,Map<String,User>>
<%
Map<User,Map<String,User>> userMapp = new HashMap<User,Map<String,User>> ();
userMapp.put(user1, userMap);
userMapp.put(user2, userMap);
application.setAttribute("userMapp", userMapp);
%>
<c:forEach items="${userMapp }" var="entry">
${entry.key.name }--${entry.key.password }:
<c:forEach items="${entry.value }" var="et">
${et.key }:${et.value.name }---${et.value.password }<br>
</c:forEach>
</c:forEach>