JavaServerPage Standard Tag Liabrary

一、jstl的简介JavaServerPaege Standard Tag Library ——jsp标准标签库

*作用:使用jstl替代<%%>

*jar包导入,才能使用jstl
	jstl1.1 和 1.2版本一样 1.0使用于j2ee1.4时代,在jsp不能直接使用el表达式。 所以一般使用1.1 1.2 版本

*使用方式
	-首先在jsp页面引入标签库
		<%@ taglib uri="jstl路径" prefix="标签库的别名" %>
	
	-找到standard.jar->META-INF->c.tld 和 fn.tld
		c.tld:标准的标签库
		fn.tld:函数的标签库
	
	-uri来自*.tld里面的标签uri prefix来自*.tld里面的标签short-name ,可以直接使用快捷键引入
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

	-引入之后就可以在jsp里面使用标签库
		<c:标签名称></c:标签名称>
		---------------------------
		<!--     使用jstl实现这段代码 -->
		<c:set var="m" value="5"></c:set>
		<c:if test="${m==5 }">
			<h2>i=5</h2>
		</c:if>
		<c:if test="${m!=5 }">
			<h3>i!=5</h3>
		</c:if>

 二、jstl的out标签

*语法:<c:out 属性=“属性值”></c:out>
*属性
	value :里面的值,表示向页面输出的内容
	default:默认值,如果value里面el表达式没有取到值
	escapeXml:是否对当前操作的字符进行转义,默认true 转义
			
	-代码演示
		<!--  out 标签的使用  -->
			<c:out value="hello jstl"></c:out>
		<!--     取出变量里面的值 -->
			<c:set var="city" value="shanghai"></c:set>
			${city}
			<c:out value="${city1 }" default="beijing"></c:out>
		<!--   输出标签   -->
			<c:out value="<a href='#'>aaa</a>" escapeXml="false"></c:out>

三、jstl的set标签

*向域对象里面设置值
		<!--     set标签的使用 -->
		<!-- 	四个域对象scope的值:page reqeust session application -->
		<c:set  var="ayit" value="001" scope="page"></c:set>
		${pageScope.ayit }

*修改域对象里面的对象的属性值
		target:使用el表达式获取的对象
		property:属性名称
		value:修改的值

		<!-- 		修改域对象里面的对象的属性的值 -->
		<%
			Person p = new Person();
			p.setName("ayit");
			p.setSex("man");
			pageContext.setAttribute("p", p);
		 %>
		${p.name }
		<c:set target="${p }" property="name" value="ay"></c:set>
		${p.name }

四、jstl的remove标签

*删除域对象的名称
		<!-- 		jstl的remove标签的使用 -->
		<c:set var="ay" value="tom"></c:set>
		${ay }
		<c:remove var="ay" scope="page"/>
		${ay }

五、jstl 的 catch 标签

*获取程序的异常
		<!-- 		jstl的catch标签的使用 -->
		<%
			try{
				int a = 10/0;
			}catch(Exception e){
				out.print("Exception");
			}
		 %>
		 <c:catch var="e">
		 <%
				int b=10/0;
		  %>
		 </c:catch>
		${e.message }

六、jstl的if标签

*进行条件的判断,类似if语句
		<!-- 向域对象里面设置值-->
		<c:set var="i" value="10"></c:set>
		<!-- 		jstl的if标签的使用 -->
		<c:if test="${i>10 }">
			<h2>i>10</h2>
		</c:if>
		<c:if test="${i==10 }">
			<h2>i==10</h2>
		</c:if>

七、jstl的choose标签

*类似于java的switch语句
		<!-- 	choose标签的使用 -->
		<%
			int m = 50;
			switch(m)
			{
				case 20:out.print("20");break;
				case 10:out.print("10");break;
				case 5:out.print("5");break;
				default:out.print("No Search");
			}
		 %>
		 <c:set var="m" value="5"></c:set>
		<c:choose>
			<c:when test="${m==5 }"><h2>m==5</h2></c:when>
			<c:when test="${m==20 }"><h2>m==20</h2></c:when>
			<c:when test="${m==10 }"><h2>m==10</h2></c:when>
			<c:otherwise><h2>NOSearch</h2></c:otherwise>
		</c:choose>

八、jstl的forTokens标签

*分割字符串
	<!-- 	jstl的forTokens标签的使用 -->
	<c:forTokens items="a-b-c-e-f" delims="-" var="space">
		${space }
	</c:forTokens>

九、jstl的forEach标签的使用

*获取域对象里面的数组,集合(list,set,map),多个对象属性的值
	<hr color="black" size="7" />
	<!-- 	jstl的forEach标签的使用,操作list,set集合 -->
	<%
		//list集合放到pageContext里面
		List list = new ArrayList();
		list.add("aa");
		list.add("bb");
		pageContext.setAttribute("list",list);
		
		//set集合放到Reqeust里面
		Set set = new HashSet();
		set.add("11");
		set.add("22");
		pageContext.setAttribute("set", set,pageContext.REQUEST_SCOPE);		
	 %>
	<c:forEach var="li" items="${list }">
		${li }
	</c:forEach>
	<c:forEach var="se" items="${set }">
		${se }
	</c:forEach>
	

	<hr color="magenta" size="7" />
	<!-- 	使用jstl的forEach获取map集合 -->
	<%
		Map map = new HashMap();
		map.put("i", "小师妹");
		map.put("ii", "大湿兄");
		pageContext.setAttribute("map", map);
	 %>
	 <c:forEach var="ma" items="${map }">
		${ma.key }
		${ma.value }
	 </c:forEach>

	<hr color="cyan" size="7" />
	<!-- 	使用jstlforEach标签获取多个对象的属性的值 -->
	<!-- 先把对象存到集合里面,在把集合设置到域对象-->
	<%
		Date date = new Date();
		
		Person p1 = new Person();
		p1.setName("ayit");
		p1.setSex("man");
		
		List list1 = new ArrayList();
		list1.add(date);
		list1.add(p1);
		
		pageContext.setAttribute("list1", list1);
	 %>
	<c:forEach var="list11" items="${list1 }">
		${list11.toString() }
	</c:forEach>

*forEach其他的操作
		<hr color="magenta" size="7" />
		<c:forEach var="i" begin="1" end="10" step="2">
			${i }
		</c:forEach>

		<!--1加到100-->
		<c:forEach var="s" begin="1" end="100" step="1">
			<c:set var="sum" value="${sum+s }"></c:set>
		</c:forEach>
		${sum }
		
		<!--100到125 step=4  第多少个数是3的倍数变洋红色  其他数变成黄色-->
		<c:forEach var="aa" begin="100" end="125" step="2" varStatus="aaa">
			<c:if test="${aaa.count%3==0 }">
				<font color="magenta">
					${aa }
				</font>
			</c:if>
			<c:if test="${aaa.count%3!=0 }">
				<font color="yellow">
					${aa }
				</font>
			</c:if>
		</c:forEach>

十、jstl的import url redirect param标签

*import:在jsp页面引入其它jsp页面
*url:获取url地址
*redirect:实现重定向操作
*param:传递参数的使用

		<hr color="magenta" size="7" />
		<!-- 使用import标签进行操作 -->
		<c:import context="/day12" url="/jstl/test.jsp"></c:import>

		
		<!-- 	rediect的标签的使用 -->
		<c:redirect context="/day12" url="/jstl/test.jsp">
			<c:param name="id" value="ayit1"></c:param>
		</c:redirect>

		<hr color="gray" size="2"/>
		<c:url context="/day12" value="/jstl/test.jsp"></c:url>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值