Web基础了解版08-JSTL

Posted open-ing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 集合或字符串的长度

以上是关于Web基础了解版08-JSTL的主要内容,如果未能解决你的问题,请参考以下文章

Web基础了解版05-Servlet

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

Web基础了解版11-Ajax-JSON

Web基础了解版04-XML-Tomcat

为啥我的 C 代码片段不起作用?简化版可以。为 unsigned long long 传递不带 VA_ARGS 的 args

了解原型设计工具:墨刀