今日回顾===JSTL

今天回顾一下JSTL的一些小知识吧.
JSTL是 JSP的标准标签库,是一个定制标签类库的集合.
JSTL是使用
1.将jstl相关的jar包拷贝到项目的lib目录下
jstl.jar和standard.jar
2.在页面引入想要使用的库
<%@taglib uri=“要使用的库的路径” prefix=“前缀名” %>
3.使用标签
<前缀名:标签名 属性名=“属性值”></前缀名:标签名>
4.标签一般通过el表达式操作域对象

if标签
有两种形式

1、有主体内容
<c:if test="判断条件,返回true或false" var="限域变量名,用户接收判断条件的返回值" scope="限域变量名的域范围 page|request|session|application">
// 当满足条件时,执行的代码
</c:if>
2、无主体内容
<c:if test="判断条件,返回true或false" var="限域变量名,用户接收判断条件的返回值" scope="限域变量名的域范围 page|request|session|application">
</c:if>
<%
	 	request.setAttribute("num", 10);
	 %>	
	 
	 <c:if test="${num > 1 }" var="flag" scope="request">
	 	<h2>Hello JSTL</h2>
	 </c:if>
	 获取限域变量中的值:${requestScope.flag }
	 
	<hr> 
	<c:if test="${1==1 }" var="flag1"></c:if>  ${flag1 } <br>
	<c:if test="${1=='1' }" var="flag2"></c:if>  ${flag2 } <br>
	<c:if test="${'1'=='1' }" var="flag3"></c:if>  ${flag3 } <br>
	<c:if test="${'1==1' }" var="flag4"></c:if>  ${flag4 } <br>
	<c:if test="1==1" var="flag5"></c:if>  ${flag5 } <br>
	<c:if test="${num == 10 }" var="flag6"></c:if>  ${flag6 } <br> 
	<c:if test="true" var="flag7"></c:if>  ${flag7 } <br> 
	
	
	<hr>
	<c:if test="${num >1 }">
		<h2>Hello</h2>
	</c:if>
	<c:if test="${num <=1 }">
		<h2>Hi</h2>
	</c:if>
	

choose、when、otherwise标签


相当于Java中的switch
语法:
	<c:choose>
	<c:when test="返回boolean类型的判断条件">
	// 满足条件执行的代码
	</c:when>
		...
	<c:otherwise>
	// 当所有的when不执行时执行的代码
	</c:otherwise>
	</c:choose>
				 
注:
1、choose标签与otherwise标签没有属性,when标签必须设置test属性
2、choose标签中只能包含when标签与otherwise标签,when标签与otherwise标签可以包含其它标签
Illegal "c:if" after "c:otherwise" tag in "c:choose" tag.
3、choose标签中至少包含一个when标签,最多只有一个otherwise标签
Illegal "choose" without child "when" tag
4、所有的when标签必须设置在otherwise标签之前
Illegal "c:when" after "c:otherwise" tag in "c:choose" tag.
5、所有的when标签不执行的情况下才会执行otherwise标签

<%
	 	request.setAttribute("num", 90);
	 %>	
	 
	 <c:choose>
	 	<c:when test="${num <60 }">
	 		<h4>你个渣渣!</h4>
	 	</c:when>
	 	<c:when test="${num >= 60 && num < 80 }">
	 		<h4>哎哟不错哦!</h4>
	 	</c:when>
	 	<c:otherwise>
	 		<h4>你很棒棒哦!</h4>
	 	</c:otherwise>
	 </c:choose>

forEach标签
循环内容多次
语法:

<c:forEach begin="开始循环的数" end="结束循环的饿数" var="当前成员的限域变量名" step="循环的间隔数">
</c:forEach>

格式化动作指令
formatNumber标签
将数值型的数据转换成指定格式的字符串

	有主体内容
		 <fmt:formatNumber  type="" var="" >
		 	主体内容
		 </fmt:formatNumber>
	无主体内容:
		 <fmt:formatNumber  type="" var="" value="" />
		 
	常用属性
		type:要格式化成的类型
			number数值型,默认值
			percent百分比类型
			currency货币型
		var:限域变量名,用来接收格化式后的结果,如果不设置该属性,则结果会直接输出;如果设置了,则需要通过el表达式输出限域变量名的值
		value:要格式化的数据,与有主体内容的格式主体相同
		
formatDate标签
	将日期型的数据转换成指定格式的字符串
	<fmt:formatDate value="" var="" type="" dateStyle="" timeStyle="" pattern=""/>
	
	常用属性
		value:要格式化的数据
		type:要格式化成的类型	
			日期型(默认)、时间型、日期+时间型
		dateStyle:日期型的格式
		timeStyle:时间型的格式
		pattern:具体的格式
		
parseNumber标签
	将指定格式的字符串转换成数值型数据
	type:当前字符串的格式
			number数值型,默认值
			percent百分比类型
			currency货币型
			
parseDate标签
	将指定格式的字符串转换成日期型
	
	type:当前字符串的格式
			date、time、both
	pattern:与当前字符串对应的格式

	<%
		request.setAttribute("num", 10);
	%>
	<fmt:formatNumber>
		${num }
	</fmt:formatNumber>
	<br>
	<fmt:formatNumber value="${num}" />
	<br>
	<fmt:formatNumber value="${num }" type="percent" />
	<br>
	<fmt:formatNumber value="${num }" type="currency" var="n" /> ${n }
	
	<!-- 设置区域 -->
	<fmt:setLocale value="en_US"/>
	<fmt:formatNumber value="${num }" type="currency" /> 

	<hr>

	<%
		request.setAttribute("myDate", new Date());
	%>
	<fmt:formatDate value="${myDate }"/><br>
	<fmt:formatDate value="${myDate }" type="date"/><br>
	<fmt:formatDate value="${myDate }" type="time"/><br>
	<fmt:formatDate value="${myDate }" type="both"/><br>
	<fmt:formatDate value="${myDate }" type="both" dateStyle="FULL"/><br>
	<fmt:formatDate value="${myDate }" type="both" dateStyle="long"/><br>
	<fmt:formatDate value="${myDate }" type="both" dateStyle="FULL" timeStyle="full"/><br><br>
	
	<fmt:formatDate value="${myDate }" pattern="yyyy-MM-dd HH:mm:ss"/><br>
 	<fmt:formatDate value="${myDate }" pattern="MM-dd-yyyy HH:mm:ss"/><br>
 	<fmt:formatDate value="${myDate }" pattern="yyyy-MM-dd HH:mm:ss" var="date1"/>${date1 }<br>
 	
 	<hr>
 	<fmt:parseNumber type="number">
		10
 	</fmt:parseNumber>
 	<br>
 	<fmt:parseNumber value="10%" type="percent"  /> <br>
 	<fmt:setLocale value="zh_cn"/>
 	<fmt:parseNumber value="¥10.00" type="currency"  />
 	
 	
 	<hr>
 	<%
 		request.setAttribute("mydate", "2018-11-23");
 	%>
 	<fmt:parseDate value="${mydate }" /> <br>
 	<fmt:parseDate value="11:23:45" type="time" /><br>
 	<fmt:parseDate value="2018-11-23 11:23:45" type="both" /><br>
 	<fmt:parseDate value="11-01-2018 10:24" pattern="MM-dd-yyyy HH:mm" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值