JSTL技术详解

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>
		

猜你喜欢

转载自blog.csdn.net/lingxing9454/article/details/82888774