JSTL标签库
1.引入jar包
2.标签库分类
对于流程,循环和表达式,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.常用标签库实例
(1)c: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>
显示结果:
(2)c:set,c:remove标签
- <li>测试c:set,c:remove</li><br>
- <c:set value="root" var="userid"/>
- userid:${userid }<br>
- <c:remove var="userid"/>
- userid:${userid }
结果显示:
(3)c:catch
- <li>c:catch标签</li><br>
- <c:catch var="msg">
- <%
- Integer.parseInt("asdfsdf");
- %>
- </c:catch>
- ${msg }<br>
用来处理JSP 页面中产生的异常,并存储异常信息。
结果显示:
(4)c: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>
(5)c: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>
显示结果:
(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>
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>
显示结果:
剩下的还有函数库,自定义函数标签等等,就不具体介绍了,最常见的是上面的几种。这些基础的东西用的多了自然就熟练了。看到了就简单的总结了一下。