JSTL标签库的使用

  1 <%@page import="cn.woo.entity.Person"%>
  2 <%@page import="java.util.List"%>
  3 <%@page import="java.util.ArrayList"%>
  4 <%@ page language="java" contentType="text/html; charset=UTF-8"
  5     pageEncoding="UTF-8"%>
  6 <!-- 
  7     使用@taglib 指令引入标签库
  8     uri:为标签库的地址【此处使用的是jsp的标准标签库,里面标签还有很多此处不一一演示】
  9     prefix:自定义的标签前缀,使用的时候需要写该前缀
 10  -->
 11 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 12 
 13 <!-- 
 14     ========================================================================================
 15     其他jstl有关的标签库和函数库,可自行查询每个库中标签的使用方式【也可以借助Eclipse中的提示功能查看各个库中的标签以及标签的属性】
 16     ========================================================================================
 17  -->
 18 <!-- jstl的fmt格式化标签库 -->
 19 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
 20 <!-- jstl的fn方法库:包含了向字符串截取等方法 -->
 21 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
 22 <!-- jstl关于sql方面的标签库:包含了操作sql的标签-->
 23 <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 24 <!-- jstl关于xml方面的标签库:包含了操作xml的标签-->
 25 <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="xml"%>
 26 
 27 <!-- ======================================================================================= -->
 28 <%
 29     // 创建Person集合
 30     List<Person> persons  = new ArrayList<Person>();
 31     Person p1 = new Person("23","wpp");
 32     Person p2 = new Person("24","waa");
 33     persons.add(p1);
 34     persons.add(p2);
 35     // 要将数据放置在域中才能使用EL表达式获取展示,之前使用<jsp:use>行为创建的对象默认存放在page域对象中
 36     request.setAttribute("personList", persons);
 37     
 38     //后面演示set标签操作对象的时候使用
 39     pageContext.setAttribute("p1", p1);
 40 %>
 41 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 42 <html>
 43 <head>
 44 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 45 <title>演示JSTL常用标签的使用</title>
 46 </head>
 47 <body>
 48     <!-- out输出标签 
 49          default:[${ param.action }没有获取到数值的时候显示默认值]
 50          escapeXml:对一些特殊字符进行编码如:'>' '<' '&'
 51     -->
 52     <c:out value="${ param.action }" default="没有action参数" escapeXml="true"></c:out>
 53     <c:out value="${ '<>' }" default="默认数值" escapeXml="true"></c:out>
 54     
 55     <!-- if标签 
 56            条件写在test属性中,字符串的比较直接使用==进行比较
 57     -->
 58     <c:if test="${ param.action == 'login' }">
 59         <div>登陆面板</div>
 60     </c:if>
 61     <c:if test="${ param.action == homepage}">
 62         <div>主页面</div>
 63     </c:if>
 64     
 65     <!-- 利用choose、when、otherwise 标签实现if else功能-->
 66     <c:choose>
 67         <c:when test="${ param.action == 'login'}">
 68             <div>登陆面板</div>
 69         </c:when>
 70         <c:otherwise>
 71             <div>非登陆面板</div>
 72         </c:otherwise>
 73     </c:choose>
 74     
 75     <!-- 利用forEach标签 输出1~100之间的所有偶数
 76          begin:起始位置
 77          end:结束位置
 78          step:遍历过程中每一次跳过的步数
 79          var:设置当前遍历项的名称
 80          items:被遍历的集合数据 如:${persons} ===>人员信息集合
 81          varStatus:保存当前被遍历对象的信息【如:当前被遍历元素的索引等】
 82     -->
 83     <%-- <c:forEach begin="2" end="100" step="2" var="number" varStatus="">
 84         <p>${ number }</p>
 85     </c:forEach> --%>
 86     <!-- 遍历Persons集合 -->
 87     <c:forEach items="${ personList }" var="person" varStatus="objStatus">
 88         <p>名称:${ person.name }&nbsp;&nbsp;&nbsp;序号:${ objStatus.index }</p>
 89     </c:forEach>
 90     
 91     <!-- forTokens标签
 92            和forEach标签的使用方式一样,都有items var varStatus begin end step 等属性
 93            不同的是forEach标签的items中放置的是集合或者对象,而forTokens标签的items属性中放置的是字符串
 94            它会将该字符串按照delims的值进行分割展示
 95      -->
 96     <c:forTokens items="aaa,bbb,ccc,ddd,eee" delims="," var="str"> 
 97         <p>数值:${ str }</p>
 98     </c:forTokens>
 99     
100     <!-- set标签
101                       可以创建/修改 变量或者对象中的属性【前提条件是对象的属性拥有set方法】
102           scope:操作的变量放置的域/新创建的变量要放置的域 【page、request、session、application】
103           value:要设置的数值
104           var:【只能操作:IntegerDoubleFloatString】类型不能操作javaBean和Map
105           property:被操作的对象的属性名称/或者map中的一个key    
106           target:对象名称/或者map集合名称    【property和target常用来操作javaBean和Map============>只能用来操作已经存在的对象,不能创建对象】
107      -->
108      <!-- set创建变量,存放网站总访问次数,和当前客户端的访问次数 -->
109      <c:set scope="application" value="${ totalCount+1 }" var="totalCount"> </c:set>
110      <c:set scope="session" value="${ count+1 }" var="count"></c:set>
111        本站总访问人数:${ totalCount }<br>
112        您的访问次数为:${ count }<br>
113      <!-- set操作javaBean -->
114      <c:set value="更改后的名称" target="${ p1 }" property="name"></c:set>
115      <c:out value="${ p1.name }"></c:out>
116 </body>
117 </html>
原文地址:https://www.cnblogs.com/wooyoohoo/p/9523549.html