最长使用的JTSTL 标签

最长使用的JTSTL 标签
一、核心标签:

核心标签是最常用的 JSTL标签也就是最常见的“C”标签,首先引用头文件:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

<c:forEach> 循环遍历

</c:forEach>

<!-- 定义循环 -->
<c:forEach var="i" begin="1" end="5">
   <!-- 输出循环 -->
   Item <c:out value="${i}"/><p>
</c:forEach>
输出结果:

Item 1
Item 2
Item 3
Item 4
Item 5
<c:if> 与程序中用的if一样,没啥区别

...
<!-- 定义一个if判断 -->
<c:set var="salary" scope="session" value="4000"/>
    <!-- 如果我的工资大于2000就进入判断 -->
<c:if test="${salary > 2000}">
   <p>我的工资为: <c:out value="${salary}"/><p>
</c:if>
输出结果:

我的工资为: 4000
<c:choose> 与<c:when>和<c:otherwise>配合判断使用,与if差不多

<c:when> <c:choose>的子标签,用来判断条件是否成立

<c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当所有<c:when>标签判断为false时被执行

<body>
	<!-- 语法格式 -->

	<c:choose>
	    <c:when test="条件">
	        ...
	    </c:when>
	    <c:when test="条件">
	        ...
	    </c:when>
	    ...
	    ...
	    <c:otherwise>
	        ...
	    </c:otherwise>
	</c:choose>
	
	<c:set var="salary" scope="session" value="4000"/>
	<p>你的工资为 : <c:out value="${salary}"/></p>
	<c:choose>
	    <c:when test="${salary <= 0}">
	      	 太惨了
	    </c:when>
	    <c:when test="${salary > 1000}">
	      	 不错的薪水,还能生活。
	    </c:when>
	    <c:otherwise>
	                 什么都没有。
	    </c:otherwise>
	</c:choose>
</body>

<c:out> 用于在JSP中显示数据,作为输出使用

<c:set> 用于保存数据或定义变量

<c:param> 用来给包含或重定向的页面传递参数

<c:redirect> 重定向至一个新的URL.

<c:url> 使用可选的查询参数来创造一个URL

二、格式化标签:

格式化标签用来格式化并输出文本、日期、时间、数字:

<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>

fmt:formatNumber 使用指定的格式或精度格式化数字

<body>
	<!-- 语法格式 -->
	<fmt:formatNumber
	  value="要显示的值 "   
	  type="选择输出的类型 "
	  pattern="指定自定义格式 "
	  currencyCode="货币码"
	  currencySymbol="货币符号"
	  groupingUsed="是否对数字分组"
	  maxIntegerDigits="整型数最大的位数"
	  minIntegerDigits="整型数最小的位数"
	  maxFractionDigits="小数点后最大的位数"
	  minFractionDigits="小数点后最小的位数"
	  var="变量名"
	  scope="var属性的作用域"/>
	
	<c:set var="balance" value="120000.2309" />
	<p>格式化数字 (1): <fmt:formatNumber value="${balance}" 
	            type="currency"/></p>
	<p>格式化数字 (2): <fmt:formatNumber type="number" 
	            maxIntegerDigits="3" value="${balance}" /></p>
	<p>格式化数字 (3): <fmt:formatNumber type="number" 
	            maxFractionDigits="3" value="${balance}" /></p>
	<p>格式化数字 (4): <fmt:formatNumber type="number" 
	            groupingUsed="false" value="${balance}" /></p>
	<p>格式化数字 (5): <fmt:formatNumber type="percent" 
	            maxIntegerDigits="3" value="${balance}" /></p>
	<p>格式化数字 (6): <fmt:formatNumber type="percent" 
	            minFractionDigits="10" value="${balance}" /></p>
	<p>格式化数字 (7): <fmt:formatNumber type="percent" 
	            maxIntegerDigits="3" value="${balance}" /></p>
	<p>格式化数字 (8): <fmt:formatNumber type="number" 
	            pattern="###.###E0" value="${balance}" /></p>
	<p>美元 :
	<fmt:setLocale value="en_US"/>
	<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>

输出结果

数字格式化:
格式化数字 (1): ¥120,000.23
格式化数字 (2): 000.231
格式化数字 (3): 120,000.231
格式化数字 (4): 120000.231
格式化数字 (5): 023%
格式化数字 (6): 12,000,023.0900000000%
格式化数字 (7): 023%
格式化数字 (8): 120E3
美元 : $120,000.23
fmt:formatDate 使用指定的风格或模式格式化日期和时间


<fmt:formatDate
value="要显示的值 "
type=“要输出的类型”
pattern=“自定义格式模式”
timeZone=“显示日期的时区”
var=“变量名”/>

	<h3>日期格式化:</h3>
	<c:set var="now" value="<%=new java.util.Date()%>" />
	<p>日期格式化 (1): <fmt:formatDate type="time" value="${now}" /></p>
	<p>日期格式化 (2): <fmt:formatDate type="date" value="${now}" /></p>
	<p>日期格式化 (3): <fmt:formatDate type="both" value="${now}" /></p>
	<p>日期格式化 (4): <fmt:formatDate type="both" dateStyle="short" timeStyle="short" value="${now}" /></p>
	<p>日期格式化 (5): <fmt:formatDate type="both" dateStyle="medium" timeStyle="medium" value="${now}" /></p>
	<p>日期格式化 (6): <fmt:formatDate type="both" dateStyle="long" timeStyle="long" value="${now}" /></p>
	<p>日期格式化 (7): <fmt:formatDate pattern="yyyy-MM-dd" value="${now}" /></p>
</body>

输出结果

日期格式化:
日期格式化 (1): 11:19:43
日期格式化 (2): 2016-6-26
日期格式化 (3): 2016-6-26 11:19:43
日期格式化 (4): 16-6-26 上午11:19
日期格式化 (5): 2016-6-26 11:19:43
日期格式化 (6): 2016年6月26日 上午11时19分43秒
日期格式化 (7): 2016-06-26
fmt:parseNumber 标签用来解析数字,百分数,货币

fmt:parseDate 标签用于解析日期。

fmt:setLocale 指定地区

fmt:timeZone 指定时区

fmt:setTimeZone 指定时区

fmt:message 显示资源配置文件信息

fmt:requestEncoding 设置request的字符编码

三、JSTL函数

JSTL包含一系列标准函数,大部分是通用的字符串处理函数:

<%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions” %>

fn:contains() 字符串是否包含指定的子串

...
<!-- 测试 -->
<!-- 输出字符串 "I am from runoob" 给他起一个变量名 "theString" -->
<c:set var="theString" value="I am from runoob"/>
<!-- 判断当前字符串是否有 "runoob"  -->
<!-- 判断是否区分大小写 -->
<c:if test="${fn:contains(theString, 'runoob')}">
   <p>找到 runoob<p>
</c:if>
<c:if test="${fn:contains(theString, 'RUNOOB')}">
   <p>找到 RUNOOB<p>
</c:if>
输出结果为:

找到 runoob
fn:split() 分隔符分隔然后组成一个子字符串数组并返回(截取字符串)

fn:join() 将数组中的元素合成一个字符串然后输出

${fn:split(待分隔的字符串, '分隔符')}
<!-- 输出字符串 "www hello word com" 给他起一个变量名 "theString" -->
    <c:set var="theString1" value="www hello word com"/>
    <!-- 以空格为分割符,截取成数组 -->
<c:set var="theString2" value="${fn:split(theString1, ' ')}" />
<!-- 在数组后面拼接"-" -->
<c:set var="theString3" value="${fn:join(theString2, '-')}" />
<!-- 输出结果 -->
<p>theString3 字符串 : ${theString3}</p>
<!-- 以下同理 -->
<c:set var="theString4" value="${fn:split(theString3, '-')}" />
<c:set var="theString5" value="${fn:join(theString4, ' ')}" />
<p>theString5 字符串: ${theString5}</p>
输出结果:

theString3 字符串 : www-hello-word-com

theString5 字符串: www hello word com
fn:length() 返回字符串长度

${fn:length(要获取的变量)}
<!-- 示例 -->
<c:set var="string1" value="This is first String."/>
<c:set var="string2" value="This is second String." />
<!-- 返回字符串长度 -->
<p>字符串长度 (1) : ${fn:length(string1)}</p>
<p>字符串长度 (2) : ${fn:length(string2)}</p>
输出结果:

字符串长度 (1) : 21

字符串长度 (2) : 22
fn:indexOf() 返回指定字符串在输入字符串中出现的位置

${fn:indexOf(原始字符串,子字符串)}
<!-- 示例 -->
<c:set var="string1" value="This is first String."/>
<c:set var="string2" value="This <abc>is second String.</abc>"/>
<!-- 下标 0 开始 ,指定字符串在输入字符串中出现的位置-->
<p>Index (1) : ${fn:indexOf(string1, "first")}</p>
<p>Index (2) : ${fn:indexOf(string2, "second")}</p>
输出结果:

Index (1) : 8

Index (2) : 13
fn:substring() 返回字符串的子集

${fn:substring('要获取的对象', '开始位置', '结束位置')}
<!-- 示例 -->
<c:set var="string1" value="This is first String."/>
<!-- 下标 0 开始 ,指定字符串在输入字符串中出现的位置 !!!不包含结束位置 -->
<c:set var="string2" value="${fn:substring(string1, 1, 5)}" />
<p>生成的子字符串为 : ${string2}</p>
输出结果:

生成的子字符串为 : his
fn:substringAfter() 返回字符串在指定子串之后的子集

fn:substringBefore() 返回字符串在指定子串之前的子集

${fn:substringBefore('要获取的对象或者变量', '指定字符串')} ${fn:substringBefore('要获取的对象或者变量', '指定字符串')}
<!-- 示例 -->
<c:set var="string1" value="This is first String."/>
<!-- 截取指定指定字符串   不包含指定字符串 -->
<!-- fn:substringAfter  : 截取指定字符串之后的值 -->
<!-- fn:substringBefore : 截取指定字符串之前的值 -->
<c:set var="string2" value="${fn:substringAfter(string1, 'is')}" />
<c:set var="string3" value="${fn:substringBefore(string1, 'first')}" />
<p>生成的子字符串 : ${string2}</p>
<p>生成的子字符串 : ${string3}</p>
输出结果:

生成的子字符串 : is first String.

生成的子字符串 : This is
fn:toLowerCase() 将字符串中的字符转为小写

fn:toUpperCase() 将字符串中的字符转为大写

${fn.toUpperCase('要存放的对象')} ${fn.toLowerCase('要存放的对象')}
<!-- 示例 -->
<!-- 定义的输出语句 -->
<c:set var="string1" value="I am from RUNOOB"/>
<c:set var="string2" value="${fn:toLowerCase(string1)}" />
<c:set var="string3" value="${fn:toUpperCase(string1)}" />
<p>字符串为 : ${string2}</p>
<p>字符串为 : ${string3}</p>
输出结果:

字符串为 : i am from runoob
字符串为 : I AM FROM RUNOOB
fn:startsWith() 测试输入字符串是否以指定的前缀开始

fn:endsWith() 测试输入的字符串是否以指定的后缀结尾

... ...
<!-- 示例 -->
<!-- 定义的输出语句 -->
<c:set var="string" value="Runoob: I am from Runoob."/>

<!-- fn:startsWith -->
<c:if test="${fn:startsWith(string, 'Google')}">
   <p>字符串以 Google 开头</p>
</c:if>
<br />
<c:if test="${fn:startsWith(string, 'Runoob')}">
   <p>字符串以 Runoob 开头</p>
</c:if>

<!-- fn:endsWith -->
<c:set var="theString" value="I am from runoob 123"/>
<c:if test="${fn:endsWith(theString, '123')}">
   <p>字符串以 123 结尾<p>
</c:if>
<c:if test="${fn:endsWith(theString, 'unoob')}">
   <p>字符串以 runoob 结尾<p>
</c:if>
fn:replace() 将输入字符串中指定的位置替换为指定的字符串然后返回 ${fn:replace(<原始字符串>, <被替换的字符串>, <要替换的字符串>)}
<!-- 示例 -->
<!-- 定义的输出语句 -->
<c:set var="string1" value="I am from google"/>
<c:set var="string2" value="${fn:replace(string1, 'google', 'runoob')}" />
<p>替换后的字符串 : ${string2}</p>
fn:trim() 移除首位的空白符(去空格的) ${fn:trim("要输出的字符串")}
<!-- 定义输出字符串 -->
<c:set var="string1" value="I am from runoob         "/>
<!-- 原字符串长度 -->
<p>string1 长度 : ${fn:length(string1)}</p>
<c:set var="string2" value="${fn:trim(string1)}" />
<!-- 移除后字符串长度 -->
<p>string2 长度 : ${fn:length(string2)}</p>
<p>字符串为 : ${string2}</p>
输出结果:

string1 长度 : 25
string2 长度 : 16
fn:containsIgnoreCase() 测试输入的字符串是否包含指定的子串,大小写不敏感

...
<!-- 示例 -->
<!-- 定义的输出语句 -->
    <!-- 查询不区分大小写 -->
<c:set var="theString" value="I am from runoob"/>
<c:if test="${fn:containsIgnoreCase(theString, 'runoob')}">
   <p>找到 runoob<p>
</c:if>
<c:if test="${fn:containsIgnoreCase(theString, 'RUNOOB')}">
     <p>找到 RUNOOB<p>
</c:if>
输出结果:

找到 runoob
找到 RUNOOB
fn:escapeXml() 跳过可以作为XML标记的字符

<p>使用 escapeXml() 函数:</p>
<p>string (1) : ${fn:escapeXml(string1)}</p>
<p>string (2) : ${fn:escapeXml(string2)}</p>

<p>不使用 escapeXml() 函数:</p>
<p>string (1) : ${string1}</p>
<p>string (2) : ${string2}</p>
输出结果

使用 escapeXml() 函数:
string (1) : This is first String.
string (2) : This is second String.

不使用 escapeXml() 函数:
string (1) : This is first String.
string (2) : This is second String.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值