Web基础了解版08-JSTL

JSTL

JSP为我们提供了可以自定义标签库(Tag Library)的功能,用来替代代码脚本,Sun公司又定义了一套通用的标签库名为JSTL(JSP Standard Tag Library),里面定义很多我们开发中常用的方法

使用JSTL

  1.先引入JSTL标签库的jar包类库到WEB-INF/lib目录下

2.使用taglib指令导入需要的标签库

CORE 标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
XML 标签库
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
FMT 标签库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
SQL 标签库
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
FUNCTIONS 标签库
 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

3.使用JSTL

如:<c:out value="hello"></c:out>

即:调用前缀为c的标签的out方法,向页面中输出value属性中的字符串。

Core标签库

<c:out>标签

作用:<c:out>用于计算一个表达式并将结果输出到当前页面。功能类似于JSP表达式<%= %>和EL表达式${}

属性:

属性 作用 参数类型
value 要输出的值 Object
default 当value为null时显示的默认值 Object
escaXml 是否对特殊字符进行转义 boolean
<c:out value="${user.name}" default="" escapeXml="true"></c:out>

<c:set>标签

作用:<c:set>标签 用于 添加 或 修改 域中的属性。

属性:

属性 描述 是否必要 默认值
value 要存储或修改的值 主体的内容
target 要修改的域中的对象(必须是JavaBean或者Map)
property 指定要修改的对象的属性名
var 表示域中存放的属性名
scope var属性的作用域 (page , request , session ,application) ,若不指定则为page page

如果指定了target属性,那么property属性也需要被指定。

<c:if>标签

作用:<c:if>标签 判断表达式的值,如果表达式的值为 true 则执行其主体内容。

属性:

属性 描述 是否必要 默认值
test 条件
var 用于存储条件结果的变量
scope var属性的作用域 page

<c:choose>、<c:when>、<c:otherwise>标签

作用:

<c:choose>标签与Java switch语句的功能一样,用于在众多选项中做出选择。

switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>。

属性:

<c:choose>标签没有属性。

<c:otherwise>标签没有属性。

<c:when>标签只有一个属性,如下:

属性 描述 是否必要 默认值
test 条件

<c:forEach>标签

作用:<c:forEach>标签是迭代一个集合中的对象-可以是数组,也可以是list,也可以是map对象。

属性

属性 描述 是否必要 默认值
items 要被循环的数据集合-可以使用el表达式
begin 开始的索引(0=第一个元素,1=第二个元素) 0
end 最后一个索引(0=第一个元素,1=第二个元素) Last element
step 每一次迭代的步长 1
var 代表当前条目的变量名称
varStatus 代表循环状态的变量名称

varStatus状态:

  • 作用:指定保存迭代状态的对象的名字,该变量引用的是一个LoopTagStatus类型的对象
  • 通过该对象可以获得一些遍历的状态
    • begin 获取begin属性里的值
    • end 获取end属性里的值
    • count 获取当前遍历的个数
    • index 获取当前索引值
    • first 获取是否是第一个元素
    • last 获取是否是最后一个元素
    • current 获取当前遍历的元素对象

<c:remove>标签

作用:用于移除域中的属性

属性:

属性 作用 参数类型
var 设置要移除的属性的名字 String
scope 设置要移除属性所在的域,若不指定则删除所有域中的对应属性 String

<c:url>标签

作用:主要用来重写URL地址

属性:

属性 作用 参数类型
value 设置要处理的URI地址,注意这里要以/开头 String
var 修改后存储到域对象中的uri属性名 String
scope l 设置修改后uri存放的域 String

<c:redirect>标签

作用:用于将请求重定向到另一个资源地址

属性:

属性 作用 参数类型
uri 指定要重定向到的目标地址,注意这里指定绝对路径会自动加上项目名 String

JSTL函数

函数标签库中定义的函数基本上都是对字符串的操作。

fn:contains和fn:containsIgnoreCase

 作用:用于判断字符串中是否包含指定字符串,containsIgnoreCase忽略大小写。

参数和返回值:

参数 类型 作用
string String 源字符串
subString String 要查找的字符串
返回值 boolean 若String中包含subString则返回true,否则返回false

fn:startsWith和fn:endsWith

作用:判断一个字符串是否以指定字符开头(startsWith)或结尾(endsWith)

参数和返回值:

参数 类型 作用
string String 源字符串
prefix 或 suffix String 要查找的前缀或后缀字符串
返回值 boolean 符合要求返回true,否则返回false

fn:indexOf

作用:在一个字符串中查找指定字符串,并返回第一个符合的字符串的第一个字符的索引。

参数和返回值:

参数 类型 作用
string String 源字符串
subString String 要查找的字符串
返回值 int 若在string中找到subString则返回第一个符合的索引,若没有符合的则返回-1

fn:replace

作用:将一个字符串替换为另外一个字符串,并返回替换结果

参数和返回值:

参数 类型 作用
str String 源字符串
beforeSubString String 被替换的字符串
afterSubString String 要替换的新字符串
返回值 String 替换后的字符串

fn:substring

作用:截取字符串

参数和返回值:

参数 类型 作用
str String 源字符串
beginIndex int 开始位置索引(包含该位置)
endIndex int 结束位置索引(不包含自身)
返回值 String 返回截取的字符串

fn:substringBefore和fn:substringAfter

作用:返回源字符串中指定的子字符串之前(substringBefore)之后(substringAfter)的字符串

参数和返回值:

参数 类型 作用
str String 源字符串
subString String 指定str中的一个子串,该串之前或之后的字符串将被返回。
返回值 String 返回截取的字符串

fn:split

作用:将一个字符串拆分成字符串数组。

参数和返回值:

参数 类型 作用
str String 要被拆分的字符串
delimiters String 指定根据什么内容拆分字符串
返回值 String[] 返回拆分后的字符串数组

fn:join

作用:将数组中所有元素连接成一个字符串

参数和返回值:

参数 类型 作用
str String[] 要被连接的字符串数组
sparator String 在结果中每个元素之间的分隔符
返回值 String 拼接之后的结果

fn:toLowerCase和fn:toUpperCase

作用:将字符串都转换成大写(toUpperCase)或小写(toLowerCase)字符

参数和返回值:

参数 类型 作用
str String 源字符串
返回值 String 转换为大写或小写的字符串

fn:trim

作用:去掉字符串的前后空格

参数 类型 作用
str String 源字符串
返回值 String 去掉前后空格的结果

fn:length

作用:返回集合或者字符串的长度,此处为方法区别java中的lengh属性

参数和返回值:

参数 类型 作用
input String、集合、数组 要计算长度的目标
返回值 int 集合或字符串的长度

原文地址:https://www.cnblogs.com/Open-ing/p/12101390.html

时间: 2024-07-31 06:12:30

Web基础了解版08-JSTL的相关文章

Web基础了解版04-XML-Tomcat

XML 什么是XML-Tomcat XML:eXtensible Markup Language (可扩展标记语言). XML 是一种标记语言,很类似 HTML. XML 的设计宗旨是传输数据,而非显示数据. XML的使命,就是以一个统一的格式,组织有关系的数据.为不同平台下的应用程序服务,独立于软件和硬件的信息传输工具. XML 仅仅是纯文本.有能力处理纯文本的软件都可以处理 XML.不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签. XML相较于HTML,语法更加严格.

JAVA Web基础 EL表达式与JSTL标签库

一.EL表达式语言1.EL表达式全称expression language,用于在JSP页面获取其内置对象的内容语法:${...}在jsp中page指令有一个属性是isELIgnored, 用来标记此页面是否忽略EL表达式, 默认为false,即不忽略2.用法说明常规写法举例:<%= request.getAttribute("test")>EL表达式写法:${test}//当作用域属性名都是唯一时可以这么写            ${requestScope.test}/

Web基础了解版05-Servlet

Servlet Servlet? 从广义上来讲,Servlet规范是Sun公司制定的一套技术标准,包含与Web应用相关的一系列接口,是Web应用实现方式的宏观解决方案.而具体的Servlet容器负责提供标准的实现. 从狭义上来讲,Servlet指的是javax.servlet.Servlet接口及其子接口,也可以指实现了Servlet接口的实现类. Servlet(Server Applet)作为服务器端的一个组件,它的本意是“服务器端的小程序”. Servlet的实例对象由Servlet容器负

Web基础了解版11-Ajax-JSON

Ajax AJAX即“Asynchronous Javascript And XML”:是,不发生页面跳转.异步请求载入内容并改写局部页面内容的技术. 也可以简单的理解为通过JS向服务器发送请求.  同步处理: 就是当我们通过一个页面向服务器发送一个请求时,在服务器响应结束之前,我们的整个页面是不能操作的,并且即使整个页面中只有一小部分内容发生改变我们也要刷新整个页面. 异步处理: 通过AJAX向服务器发送请求,当服务器正常响应请求后,响应信息会直接发送到AJAX中,AJAX可以根据服务器响应的

Web基础了解版12-上传下载

上传 两个步骤: 用户在页面中选择要上传的文件,然后将请求提交到Servlet Servlet收到请求,解析用户上传的文件,然后将文件存储到服务器 上传文件表单 <form action="Servlet" method="post" enctype="multipart/form-data"> <input type="file" name="file" /><br />

Java Web基础 --- Jsp 综述(上)

摘要: J2EE是一套规范,而Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分.在最初的应用实践中,当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面,这导致Servlet开发效率极为低下.JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑内容与外观相分离,大大简化了表示层的实现,提高了开发效率.本文以JSP的本质是Servlet为主线,结合JSP转译后所得的Servlet,详细探讨了JSP的原理.执行过程.脚本元素.编译指令

Java Web基础 --- Jsp 综述(下)

摘要: JSP脚本中包含九个内置对象,它们都是Servlet-API接口的实例,并且JSP规范对它们进行了默认初始化.本文首先通过一个JSP实例来认识JSP内置对象的实质,紧接着以基于请求/响应架构应用的运行机制为背景,引出JSP/Servlet的通信方式与内置对象的作用域,并对每个内置对象的常见用法进行深入介绍和总结. 一. JSP 九大内置对象概述及相关概念说明 JSP脚本中包含九个内置对象,这九个内置对象都是 Servlet API 接口的实例,并且JSP规范对它们进行了默认初始化(由 J

Java Web基础 --- Servlet 综述(实践篇)

摘要: 伴随 J2EE 6一起发布的Servlet 3.0规范是Servlet规范历史上最重要的变革之一,它的许多新的特性都极大的简化了 Java Web 应用的开发.本文从一个简单的 Servlet 例子开始,说明了如何开发.配置一个 Servlet.此外,还重点叙述了Servlet的一些新特性,包括Servlet 异步处理.Servlet 非阻塞IO 以及 Servlet 文件上传等内容,以便我们对Servlet有一个更全面的了解. 本篇主要介绍 Servlet 实践方面的知识,更多关注于S

Golang友团无闻Go语言Web基础视频教程

教程内容:GO语言资料Golang友团无闻Go语言编程基础Golang友团无闻Go语言Web基础教程 Go语言Web基础教程列表:[Go Web基础]12Go Web 扩展学习.mp4[Go Web基础]11简易的 RPC 实现.mp4[Go Web基础]10自建 HTTP 中间件.mp4[Go Web基础]09国际化支持.mp4[Go Web基础]08文章附件上传.mp4[Go Web基础]07为文章添加标签.mp4[Go Web基础]06评论与分类显示.mp4[Go Web基础]05文章的添