?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 } 序号:${ 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:【只能操作:Integer\Double\Float\String】类型不能操作javaBean和Map105 ??????????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>
JSTL标签库的使用
原文地址:https://www.cnblogs.com/wooyoohoo/p/9523549.html