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属性存放的范围 实例:
choose、when、otherwise标签的用法:
通常这三个标签放在一起来使用。
实例一:三个标签一起使用
结果显示:良好
实例二:只用choose和when标签
结果显示为:良好
3.循环标签
forEach标签的用法(重点!!):
根据循环条件遍历集合中的元素
var设定变量名用于存储从集合中取出的元素(必须无默认值)items指定要遍历的集合begin、and用于指定遍历的起始位置和终止位置(有默认值)step指定循环的步长(有默认值)varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素的状态。
实例1(遍历常量):
|
实例2(遍历实体对象集合):
<%
Student student1=new Student(1,"小红");
Student student2=new Student(2,"小明");
List
list.add(student1);
list.add(student2);
pageContext.setAttribute("list",list);
%>
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,可以同
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