JSTL标签库

1.引入jar

JSTL标签库

2.标签库分类

JSTL标签库

对于流程,循环和表达式,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标签

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

显示结果:

JSTL标签库
2c:setc:remove标签

[html] view plain copy
  1. <li>测试c:set,c:remove</li><br>  
  2. <c:set value="root" var="userid"/>  
  3. userid:${userid }<br>  
  4. <c:remove var="userid"/>  
  5. userid:${userid }  
  c:set将变量存取于JSP中或javaBean属性中,c:remove将变量从JSP中或javaBean属性中移除。
结果显示:

JSTL标签库

3c:catch

[html] view plain copy
  1. <li>c:catch标签</li><br>  
  2.     <c:catch var="msg">  
  3.         <%  
  4.             Integer.parseInt("asdfsdf");  
  5.         %>  
  6.     </c:catch>  
  7.     ${msg }<br>  

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

结果显示:

JSTL标签库

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

[html] view plain copy
  1.  <li>条件控制标签:c:if</li><br>  
  2. <c:if test="${v1 lt v2}">  
  3.     v1小于v2<br>  
  4. </c:if>  
  5. <p>  
  6. <li>条件控制标签:c:choose,c:when,c:otherwise</li><br>  
  7. <c:choose>  
  8.     <c:when test="${v1 gt v2}">  
  9.         v1大于v2<br>  
  10.     </c:when>  
  11.     <c:otherwise>  
  12.         v1小于v2<br>  
  13.     </c:otherwise>  
  14. </c:choose>  
显示结果:

JSTL标签库

5c:foreach

[html] view plain copy
  1. <li>演示循环控制标签:forEach</li><br>  
  2.     <table border="1">  
  3.         <tr>  
  4.             <td>用户名称</td>  
  5.             <td>年龄</td>  
  6.             <td>所属组</td>  
  7.         </tr>  
  8.         <c:choose>  
  9.             <c:when test="${empty users}">  
  10.                 <tr>  
  11.                     <td colspan="3">没有符合条件的数据</td>  
  12.                 </tr>  
  13.             </c:when>  
  14.             <c:otherwise>  
  15.                 <c:forEach items="${users}" var="user">  
  16.                     <tr>  
  17.                         <td>${user.username }</td>  
  18.                         <td>${user.age }</td>  
  19.                         <td>${user.group.name }</td>  
  20.                     </tr>  
  21.                 </c:forEach>  
  22.             </c:otherwise>  
  23.         </c:choose>  
  24.     </table>    

显示结果:

JSTL标签库
6c:forTokens

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

4.格式化标签库

[html] view plain copy
  1.   <h1>测试格式化日期标签</h1>  
  2.     today(default):<fmt:formatDate value="${today}"/><br>  
  3.     today(type="date"):<fmt:formatDate value="${today}" type="date"/><br>  
  4.     today(type="time"):<fmt:formatDate value="${today}" type="time"/><br>  
  5.     today(type="both"):<fmt:formatDate value="${today}" type="both"/><br>  
  6.     today(dateStyle="short"):<fmt:formatDate value="${today}" dateStyle="short"/><br>  
  7.     today(dateStyle="medium"):<fmt:formatDate value="${today}" dateStyle="medium"/><br>  
  8.     today(dateStyle="long"):<fmt:formatDate value="${today}" dateStyle="long"/><br>  
  9.     today(dateStyle="full"):<fmt:formatDate value="${today}" dateStyle="full"/><br>  
  10.     today(pattern="yyyy/MM/dd HH:mm:ss):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" var="currentDate"/><br>  
  11.     ${currentDate }<br>  
  12.     <h1>测试格式化数字标签</h1>  
  13.     n(default):<fmt:formatNumber value="${n}"/><br>  
  14.     n(pattern="###,###,###.####"):<fmt:formatNumber value="12345678.123" pattern="###,###,###.####"/><br>  
  15.     n(pattern="###,###,###.0000"):<fmt:formatNumber value="12345678.123" pattern="###,###,###.0000"/><br>  
  16.     n(groupingUsed="false"):<fmt:formatNumber value="12345678.123" groupingUsed="false"/><br>  
  17.     n(maxIntegerDigits="12" minIntegerDigits="10"):<fmt:formatNumber value="12345678.123" maxIntegerDigits="12" minIntegerDigits="10"/><br>  
  18.     n(minFractionDigits="4" maxFractionDigits="6"):<fmt:formatNumber value="12345678.123" minFractionDigits="4" maxFractionDigits="6"/><br>  
  19.     n(type="currency"):<fmt:formatNumber value="12345678.123" type="currency"/><br>  
  20.     n(type="currency" currencySymbol="$"):<fmt:formatNumber value="12345678.123" type="currency" currencySymbol="$"/><br>  
  21.   
  22. n(type="percent"):<fmt:formatNumber value="0.1234567" type="percent" minFractionDigits="2" maxFractionDigits="2"/><br>  
看完上面的代码展示结合下面的显示结果基本已经知道各个的含义。其中几个解释一下,maxIntegerDigits, minIntegerDigits最多最少的整数位数。maxFractionDigitsminFractionDigits最多最少的小位数。

显示结果:

JSTL标签库

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