对于流程,循环和表达式,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"%>
(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>使用的表达式结果为null时,设置default就会显示default设置的值。escapeXml设置true不使用转移字符,false使用转义字符。
显示结果:
<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属性中移除。
(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>
显示结果:
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设置根据“#”进行截取。
<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 最多最少的小位数。
显示结果:
剩下的还有函数库,自定义函数标签等等,就不具体介绍了,最常见的是上面的几种。这些基础的东西用的多了自然就熟练了。看到了就简单的总结了一下。