HOME> 世界杯比利时> JSTL核心标签超详细详解(学习笔记,一文看懂)

JSTL核心标签超详细详解(学习笔记,一文看懂)

JSTL

一、认识JSTL表达式

1.什么是JSTL

JSTL是Java server pages standarded tag library的缩写,即java标准标签库JSTL百度百科JSTL是java中的一个订制标签库集JSTL标准标签库(JSTL)是一个JSP标准集合,它封装了JSP应用的通用核心功能。根据JSTL标签所提供的功能,可以将其分为五5个类别。

核心标签(常用)格式化标签SQL标签XML标签JSTL函数

2.为什么要使用JSTL

实现了JSP页面代码的复用

基于标签库原理,重复 书写JSP页面的可读性强

长得很像XML,方便前端检查和参与修改

二、JSTL环境搭建

maven官网搜索jstl的依赖导入到项目在JSP页面引入jar包

三、JSTL表达式的核心标签

1.13个核心标签

2.按功能划分四类

从功能上可以分为4类:

按照功能划分包含的标签表达式控制标签out set remove catch流程控制标签if choose when otherwise循环标签forEach forTokensURL标签import url redirect

四、JSTL常用标签详细讲解

1.表达式控制标签

out标签的用法:

输出常量

可以在value属性中直接赋值 输出变量

变量不存在的时候可以配合default属性输出默认值,还可以通过escapeXml控制转义字符的输出格式var设定存放值的变量 实例:

set标签的用法:

存值到scope中

可以将值以变量的形式存放到指定的范围scope设定存放值的内容value指定存放值的内容var设定存放的变量 实例:

${age-1}

存值到JavaBean的属性中

target属性指定javabean的对象property属性指定要赋值给javabean对象的那个属性value指定存放值的内容

remove标签的用法:

remove掉某一个变量var属性是必选的scope属性是必选的

注意:

如果不同的scope中存在一样的变量,可以通过scope属性指定删除哪个scope中的变量

实例:

catch标签的用法:

catch标签可以包含容易出错的JSTL标签(逻辑)var属性定义错误信息的输出的变量名

实例:

<%--catch标签--%>

<%--压根就没有student,看它报什么错--%>

2.流程控制标签

if标签的用法:

用来实现分支条件的控制

test属性用来存放判断条件,一般使用EL表达式来编写var属性指定名称用来存放判断结果类型为true还是falsescope属性用来存放指定var属性存放的范围 实例:

我大于17

我小于等于17

choose、when、otherwise标签的用法:

通常这三个标签放在一起来使用。

标签嵌套在标签的外面作为父标签来使用。标签和标签也可以组合使用。

实例一:三个标签一起使用

优秀

良好

良好

不及格

结果显示:良好

实例二:只用choose和when标签

优秀

良好

良好

不及格

结果显示为:良好

3.循环标签

forEach标签的用法(重点!!):

根据循环条件遍历集合中的元素

var设定变量名用于存储从集合中取出的元素(必须无默认值)items指定要遍历的集合begin、and用于指定遍历的起始位置和终止位置(有默认值)step指定循环的步长(有默认值)varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素的状态。

实例1(遍历常量):

<%//设置隔行变色%>

style="background-color: pink" >

实例2(遍历实体对象集合):

<%

Student student1=new Student(1,"小红");

Student student2=new Student(2,"小明");

List list=new ArrayList<>();

list.add(student1);

list.add(student2);

pageContext.setAttribute("list",list);

%>

<%//设置隔行变色%>

style="background-color: pink" >

ID姓名

forTookens标签的用法

用于浏览字符串,并根据指定的字符串将字符串截取。

items指定被迭代的字符串delims指定使用的分隔符var指定用来存放遍历的元素

实例:

${z}

效果:

4.URL标签

import标签的用法:

可以把其他静态或者动态文件包含到本jsp页面。同< jsp:include>的区别为:只能包含同一个web应用中的文件而< c:import>可以包含其他web应用下的文件,甚至是网络上的资源

redirect标签的用法:

该标签用来实现请求的重定向,同时可以在url中加入指定的参数

url指定重定向页面的地址,可以是一个String类型的绝对地址或者相对地址context用来导入其他web应用 中的页面。

实例:

url标签的用法:

该标签用于动态生成一个String类型的url,可以同标签共同使用,也可以使用html的< a> 标签实现超链接。

value表示url路径值var将url的路径存放在变量中scope var变量的范围

实例:

内容是:${myurl}

我的超链接

效果:

五、顺便一提格式化标签库

1.formatDate标签的详解

实例:

--不要忘记这个标签库的导入

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

--正文代码

<%

Date date=new Date();

pageContext.setAttribute("date",date);

%>

${pageScope.date}


效果:

六、顺便一提函数标签库

1.length标签

实例:

${fn:length("abc")}

页面显示:3

友情链接