JSTL标签库

1.引入jar


2.标签库分类

JSTL标签库_第1张图片

对于流程,循环和表达式,URL标签库统称为JSTL核心库,在JSP中添加:

<%@ tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%> 

对于格式化标签库,在JSP中添加:

<%@ tagliburi="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

还有一个函数标签库,在JSP中添加:

<%@ tagliburi="http://java.sun.com/jsp/jstl/functions"prefix="fn"%> 

3.常用标签库实例

1c:out标签

 hello(使用标签):<c:out value="hello"/><br>
	hello(使用缺省值):<c:out value="${null}" default="没有值"/><br>
	welcome(使用标签,escapeXml=true):<c:out value="<font color='red'>欢迎你来到这个世界!</font>" escapeXml="true"/><br>
	welcome(使用标签,escapeXml=false):<c:out value="<font color='red'>欢迎你来到这个世界!</font>" escapeXml="false"/><br>
使用的表达式结果为null时,设置default就会显示default设置的值。escapeXml设置true不使用转移字符,false使用转义字符。

显示结果:

JSTL标签库_第2张图片
2c:setc:remove标签

	<li>测试c:set,c:remove</li><br>
	<c:set value="root" var="userid"/>
	userid:${userid }<br>
	<c:remove var="userid"/>
	userid:${userid }
  c:set将变量存取于JSP中或javaBean属性中,c:remove将变量从JSP中或javaBean属性中移除。
结果显示:


3c:catch

<li>c:catch标签</li><br>
	<c:catch var="msg">
		<%
			Integer.parseInt("asdfsdf");
		%>
	</c:catch>
	${msg }<br>

用来处理JSP 页面中产生的异常,并存储异常信息。

结果显示:


4c:if,c:choose,c:when,c:otherwise

  <li>条件控制标签:c:if</li><br>
	<c:if test="${v1 lt v2}">
		v1小于v2<br>
	</c:if>
	<p>
	<li>条件控制标签:c:choose,c:when,c:otherwise</li><br>
	<c:choose>
		<c:when test="${v1 gt v2}">
			v1大于v2<br>
		</c:when>
		<c:otherwise>
			v1小于v2<br>
		</c:otherwise>
	</c:choose>
显示结果:

JSTL标签库_第3张图片

5c:foreach

<li>演示循环控制标签:forEach</li><br>
	<table border="1">
		<tr>
			<td>用户名称</td>
			<td>年龄</td>
			<td>所属组</td>
		</tr>
		<c:choose>
			<c:when test="${empty users}">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${users}" var="user">
					<tr>
						<td>${user.username }</td>
						<td>${user.age }</td>
						<td>${user.group.name }</td>
					</tr>
				</c:forEach>
			</c:otherwise>
		</c:choose>
	</table>	

显示结果:

JSTL标签库_第4张图片
6 c: forTokens

servlet赋值:
//forTokens
request.setAttribute("strTokens", "1#2#3#4#5");
JSP取值:
<li>演示循环控制标签:forTokens</li><br>
<c:forTokens items="${strTokens}" delims="#" var="v">
	${v }<br>
</c:forTokens>
用于浏览字符串,并根据指定的字符串截取字符串。上面定义了一串字符串,在JSP中取值的时候,delims设置根据“#”进行截取。

4.格式化标签库

  <h1>测试格式化日期标签</h1>
	today(default):<fmt:formatDate value="${today}"/><br>
	today(type="date"):<fmt:formatDate value="${today}" type="date"/><br>
	today(type="time"):<fmt:formatDate value="${today}" type="time"/><br>
	today(type="both"):<fmt:formatDate value="${today}" type="both"/><br>
	today(dateStyle="short"):<fmt:formatDate value="${today}" dateStyle="short"/><br>
	today(dateStyle="medium"):<fmt:formatDate value="${today}" dateStyle="medium"/><br>
	today(dateStyle="long"):<fmt:formatDate value="${today}" dateStyle="long"/><br>
	today(dateStyle="full"):<fmt:formatDate value="${today}" dateStyle="full"/><br>
	today(pattern="yyyy/MM/dd HH:mm:ss):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" var="currentDate"/><br>
	${currentDate }<br>
	<h1>测试格式化数字标签</h1>
	n(default):<fmt:formatNumber value="${n}"/><br>
	n(pattern="###,###,###.####"):<fmt:formatNumber value="12345678.123" pattern="###,###,###.####"/><br>
	n(pattern="###,###,###.0000"):<fmt:formatNumber value="12345678.123" pattern="###,###,###.0000"/><br>
	n(groupingUsed="false"):<fmt:formatNumber value="12345678.123" groupingUsed="false"/><br>
	n(maxIntegerDigits="12" minIntegerDigits="10"):<fmt:formatNumber value="12345678.123" maxIntegerDigits="12" minIntegerDigits="10"/><br>
	n(minFractionDigits="4" maxFractionDigits="6"):<fmt:formatNumber value="12345678.123" minFractionDigits="4" maxFractionDigits="6"/><br>
	n(type="currency"):<fmt:formatNumber value="12345678.123" type="currency"/><br>
	n(type="currency" currencySymbol="$"):<fmt:formatNumber value="12345678.123" type="currency" currencySymbol="$"/><br>

n(type="percent"):<fmt:formatNumber value="0.1234567" type="percent" minFractionDigits="2" maxFractionDigits="2"/><br>
看完 上面的代码展示结合下面的显示结果基本已经知道各个的含义。其中几个解释一下, maxIntegerDigits, minIntegerDigits 最多最少的整数位数。 maxFractionDigits minFractionDigits 最多最少的小位数。

显示结果:

JSTL标签库_第5张图片

剩下的还有函数库,自定义函数标签等等,就不具体介绍了,最常见的是上面的几种。这些基础的东西用的多了自然就熟练了。看到了就简单的总结了一下。



你可能感兴趣的:(JSTL标签库)