JETL的简单介绍

简介:

Java Server Pages Standard Tag Libray(JSTL):JSP 标准标签库,是一个定制标签 类库的集合,用于解决一些常见的问题,例如迭代一个映射或者集合、条件测试、 XML 处理,甚至数据库和访问数据库操作等。

我们现在只讨论 JSTL 中最重要的标签,迭代集合以及格式化数字和日期几 个标签

核心标签库:http://java.sun.com/jsp/jstl/core 包含 Web 应用的常见工作, 比如:循环、表达式赋值、基本输入输出等

格式化标签库:http://java.sun.com/jsp/jstl/fmt 用来格式化显示数据的工作, 比如:对不同区域的日期格式化等

为了在 JSP 页面使用 JSTL 类库,必须以下列格式使用 taglib 指令

<%@taglib uri=”” prefix=””%>
例如:<%@taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>

标签的使用:

  1. 条件动作标签 :

  2. 在 JSTL 中也有 4 个标签 可以执行条件式动作指令:if、 choose、when 和 otherwise。

if 标签 :

if 的语法有两种形式:没有主体内容、有主体内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
JSTL 中没有 else 标签,为了模拟 else 的情景,需要使用两个 if 标签,并 且这两个标签为相反的条件。

2) choose、when 和 otherwise 标签

1、choose标签中至少包含一个when标签,可以没有otherwise标签 (Illegal “choose” without child “when” tag)

	2、choose标签中只能有when标签和otherwise标签(Illegal child tag in "c:choose" tag: "c:if" tag)
	3、when标签和otherwise标签可以包含其他标签
	4、choose标签和otherwise标签没有属性,when标签必须有test属性
	5、otherwise标签必须放在最后一个when标签之后 (Illegal "c:when" after "c:otherwise" tag in "c:choose" tag.)
	6、当所有的when标签的条件不成立时,才会执行otherwise标签
 <%
 	request.setAttribute("score", 50);
 %>
<c:choose>
	<c:when test="${score<60 }">
		<h2>你个渣渣</h2>
	</c:when>
	<c:when test="${score>=60 && score<80 }">
		<h2>继续努力</h2>
	</c:when>
	<c:when test="${score>=80 && score<100 }">
		<h2>不错啊</h2>
	</c:when>
	<c:otherwise>
		<h2>你好强</h2>
	</c:otherwise>
</c:choose>

2. 迭代标签 :forEach 标签

forEach 是将一个主体内容迭代多次,或者迭代一个对象集合

可以迭代的 对象包括所 有的 java.util.Collection 和 java.util.Map 接口的实现,以及对象或 者基本类型的数组

	1、遍历主体内容多次 
		<c:forEach begin="开始的数" end="结束的数" var="接收当前被循环的成员" step="循环的间隔数"></c:forEach>
	
	2、遍历集合、map等
		<c:forEach items="被循环的对象" var="接收当前被循环的成员" varStatus="当前成员的相关信息"></c:forEach>

	常用属性:
		items:需要被遍历的对象(可以是集合、map等,都是存放在域对象中的数据)
		var:限域变量名,用来每次被遍历到的成员
<c:forEach begin="1" end="10" var="i" step="3">
 			${i} &nbsp;
 		</c:forEach>
 		
 	<%
 		List<String> list =new ArrayList<>();
		 	list.add("aaa");
			list.add("bbb");
			list.add("ccc");
			request.setAttribute("list", list);
			
		Map map= new HashMap();
		map.put("aaa", "111");
		map.put("bbb", 2222);
		map.put("ccc-a", 333);
		request.setAttribute("map", map);
		
 	
 	
 	%>
 	<c:forEach items="${list }" var="item" varStatus="p">
 	 当前被循环的成员:${item} 
 	 当前下标:${p.index }
 	 当前循环次数:${p.count }
 	 是否是第一次被循环:${p.first }
 	 是否是最后一次被循环:${p.last }
 	</c:forEach>
 	
 	<c:forEach items="${map }" var="item">
 	 		${item } - ${item.key } - ${item.value } <br>
 	
 	</c:forEach>

在这里插入图片描述
3. 格式化动作指令

JSTL 提供了格式化和解析数字和日期的标签,我们讨论里面有: formatNumber、formatDate、parseNumber 及 parseDate

1) formatNumber 标签

该标签用指定的格式或精度来格式化数字.

,fmt:formatNumber标签有如下属性: 使用该标签时,有两种语法:

使用该标签时,有两种语法:

			无主体内容
				<fmt:formatNumber value="要被格式化的数值" type="被格式化的类型"/> <br>
有主体内容:
<fmt:formatNumber type="currency" var="num2" >10</fmt:formatNumber>${num2 }

在这里插入图片描述

2) formatDate 标签

使用指定的风格或模式格式化日期和时间,fmt:formatDate标签有如下属 性:
在这里插入图片描述
pattern 属性指定更精确的处理日期

在这里插入图片描述

在这里插入图片描述

3) parseNumber 标签

利用 parseNumber 标签可以将数字、货币或百分比的字符串表示法解析成 指定语言环 境的数字。即解析一个代表着数字,货币或百分比的字符串。两种 语法形式

有主体内容
无主体内容

在这里插入图片描述

fmt:parseNumber标签有如下属性

在这里插入图片描述

parseDate 标签

此标签为指定区域解析日期和时间的字符串表示法。即解析一个代表着日期 或时间的字 符串。两种形式

有主体内容
无主体内容

fmt:parseDate标签有如下属性

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值