一、什么是JSTL
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
核心标签
格式化标签
SQL 标签
XML 标签
JSTL 函数
二、JSTL的安装
从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)
下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/ 下。
将 tld 下的需要引入的 tld 文件复制到 WEB-INF 目录下。
三、核心标签库
引用核心标签库语法
1、标签
标签用来显示一个表达式的结果,与作用相似。
语法格式
value:要输出的值 default:默认值 escapeXml:是否忽略xml特殊字符
JSTL2、标签
标签用于设置变量值和对象属性。
语法格式:
var:存储信息的变量 value:要存储的值 target:要修改属性所属对象 property:要修改的属性 scope:var属性的作用域 默认page
JSTL给bean赋值--%>
pageContext.setAttribute("user",user);%>
name=${user.name}
给map赋值 --%>
map=newHashMap();
pageContext.setAttribute("map", map);%>
map=${map }
name=${map.name }
age=${map.age }
num=${num}
3、标签
标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。
语法格式:
var:要移除的变量名 scope:变量所属的作用域
JSTL删除指定域空间中的指定变量
name_request=${requestScope.name }
name_page=${pageScope.name }
name_session=${sessionScope.name }
name_application=${applicationScope.name }
-----------------------------
删除所有域中的属性值
name_request=${requestScope.name}
name_page=${pageScope.name }
name_session=${sessionScope.name }
name_application=${applicationScope.name }
4、标签
标签主要用来处理产生错误的异常状况,并且将错误信息储存起来。
语法格式:
...
var:用来存储错误信息的变量
JSTL异常为 : ${catchException}
发生了异常: ${catchException.message}
5、标签
标签判断表达式的值,如果表达式的值为 true 则执行其主体内容。
语法格式:
...
test:条件 var:存储结果的变量 scope:var的作用域
JSTL我的工资为:
6、, , 标签
标签与Java switch语句的功能一样,用于在众多选项中做出选择。
switch语句中有case,而标签中对应有,switch语句中有default,而标签中有。
语法格式:
...
......
......
test:条件
JSTL难搞哦
勉强能过
还行
7、 标签
标签是更加通用的标签,因为它迭代一个集合中的对象。
语法格式:
items=""begin=""end=""step=""var=""varStatus="">...
items:要循环的信息 begin:开始的元素 end:最后一个元素 step:每次迭代的步长 var:代表当前条目的变量名称 varStatus:代表循环状态的变量名称
JSTL---------遍历LIST-----------
names = new ArrayList();
names.add("zero 001");
names.add("zero 002");
names.add("zero 003");
pageContext.setAttribute("names",names);%>
${name}
---------遍历set-----------
address = new HashSet();
address.add("四川");
address.add("重庆");
address.add("北京");
pageContext.setAttribute("address",address);%>
${addr}
---------遍历map-----------
maps = new HashMap<>();
maps.put("name","zero");
maps.put("sex","男");
maps.put("address","四川");
pageContext.setAttribute("maps",maps);%>
${map}
---------遍历数组-----------
pageContext.setAttribute("hobbies",hobbies);%>
${hobby}