JSTL 核心标签库标签的使用和介绍

一.配置JSTL

1.复制JSTL的标准实现

在Tomcat的\webapps\examples\WEB-INF\lib目录下,找到“taglibs-standard-impl-1.2.5.jar”和“taglibs-standard-spec-1.2.5.jar”文件,然后复制到Web工程的WEB-INF\lib目录下。

2.使用taglib标记定义前缀与uri引用

如果使用Core标签库,首先需要在JSP页面中使用taglib标记定义前缀与uri引用,代码如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
如果使用Functions标签库,首先需要在JSP页面中使用taglib标记定义前缀与uri引用,代码如下:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

二.核心标签库

<1>通用标签

1.<c:out>标签

<c:out>用来显示数据的内容,与 <%= 表达式 %> 或${表达式}类似。格式如下:
<c:out value="输出的内容" [default="defaultValue"]/>
或
	<c:out value="输出的内容">
		defaultValue
	</c:out>
其中,value值可以是一个EL表达式,也可以是一个字符串;default可有可无,当value值不存在时,就输出defaultValue。

2.<c:set>标签

1)设置作用域变量
使用<c:set>在page、request、session、application等范围内设置一个变量。格式如下: 将value值赋值给变量varName。
<c:set value="value" var="varName" [scope="page|request|session|application"]/>
2)设置JavaBean 的属性
使用<c:set>设置JavaBean的属性时,必须使用target属性进行设置。格式如下:将value赋值给target对象(JaveBean对象)的propertyName属性。如果target为null或没有set方法则抛出异常。
<c:set value="value" target="target"  property=“propertyName"/>

3.<c:remove>标签

如果要删除某个变量,则可以使用<c:remove>标签。例如:
<c:remove var="userName" scope="session"/>
相当于<%session.removeAttribute(“userName”) %>

<2>流程控制标签

1.<c:if>标签

<c:if>标签实现if语句的作用,具体语法格式如下:
	<c:if test="条件表达式">
		主体内容
	</c:if>
条件表达式可以是EL表达式,也可以是JSP表达式。如果表达式的值为true,则会执行<c:if>的主体内容
但是没有<c:else>标签
如果想在条件成立时执行一块内容,不成立时执行另一块内容,则可以使用<c:choose>、<c:when>及<c:otherwise>标签,后面介绍。

2.<c:choose>、<c:when>及<c:otherwise>标签

<c:choose>、<c:when>及<c:otherwise>标签实现if/elseif/else语句的作用。具体语法格式如下:
	<c:choose>
		<c:when test="条件表达式1">
			主体内容1
		</c:when>
		<c:when test="条件表达式2">
			主体内容2
		</c:when>
		<c:otherwise>
			表达式都不正确时,执行的主体内容
		</c:otherwise>
    </c:choose>

<3>迭代标签

1.<c:forEach>标签

<c:forEach>标签可以实现程序中的for循环。语法格式如下:
	<c:forEach var="变量名" items="数组或Collection对象">
		循环体
	</c:forEach>
其中,items属性可以是数组或Collection对象,每次循环读取对象中的一个元素,并赋值给var属性指定的变量,之后就可以在循环体使用var指定的变量获取对象的元素。

2.<c:forTokens>标签

<c:forTokens>用于迭代字符串中由分隔符分隔的各成员,它是通过java.util.StringTokenizer实例来完成字符串的分隔,属性items和delims作为构造StringTokenizer实例的参数。

在这里插入图片描述
在这里插入图片描述

三.函数标签库

1.contains函数

该函数功能是判断一个字符串中是否包含指定的子字符串。如果包含,则返回true,否则返回false。其定义如下:
contains(string, substring)
该函数调用示例代码如下:下述EL表达式将返回true。
${fn:contains("I am studying", "am") }	

2.containsIgnoreCase函数

该函数与contains函数功能相似,但判断是不区分大写的。其定义如下:
containsIgnoreCase(string, substring),  该函数调用示例代码如下:
${fn:containsIgnoreCase("I AM studying", "am") }

3.endsWith函数

该函数功能是判断一个字符串是否以指定的后缀结尾。其定义如下:
endsWith(string, suffix)
该函数调用示例代码如下:
	${fn:endsWith("I AM studying", "am") }

4.indexOf函数

该函数功能是返回指定子字符串在某个字符串中第一次出现时的索引,找不到时,将返回-1。其定义如下:
indexOf(string, substring)
该函数调用示例代码如下:
	${fn:indexOf("I am studying", "am") }

5.join函数

该函数功能是将一个String数组中的所有元素合并成一个字符串,并用指定的分隔符分开。其定义如下:
join(array, separator)
例如,假设一个String数组my,它有3个元素:“I”、“am”和“studying”,则下列EL表达式:
将返回“I,am,studying”。
	${fn:join(my, ",") }

6.length函数

该函数功能是返回集合中元素的个数,或者字符串中的字符个数。其定义如下:
length(input)
该函数调用示例代码如下:
下述EL表达式将返回3。
	${fn:length("aaa")}

7.replace函数

 该函数功能是将字符串中出现的所有beforestring用afterstring替换,并返回替换后的结果。其定义如下:
replace(string, beforestring, afterstring)
该函数调用示例代码如下:下述EL表达式将返回“I do do studying”。
	${fn:replace("I am am studying", "am", "do") }

8.split函数

该函数功能是将一个字符串,使用指定的分隔符separator分离成一个子字符串数组。其定义如下:
split(string, separator)

9.startsWith函数

该函数功能是判断一个字符串是否以指定的前缀开头。其定义如下:
startsWith(string, prefix)

10.substring函数

该函数功能是返回一个字符串的子字符串。其定义如下:
substring(string, begin, end)

11.toLowerCase函数

该函数功能是将一个字符串转换成它的小写版本。其定义如下:
toLowerCase(string)

12.toUpperCase函数

该函数功能与toLowerCase函数的功能相反。

13.trim函数

该函数功能是将一个字符串开头和结尾的空白去掉。其定义如下:
trim(string)
该函数调用示例代码如下:下述EL表达式将返回“I AM studying”。
	${fn:trim("    I AM studying     ") }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_大木_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值