JSTL标签库,在javaee4.0需要导入JSTL相关的jar包,在javaee5.0开始,默认已经包含了此jar包。还要需要用<%@taglib%>指令引入标签库
一、 介绍
JavaServerPages Standard Tag Library
由JCP(JavaCommunity Process)指定标准
提供给 Java Web 开发人员一个标准通用的标签函数库
和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性
一般我们使用JSTL1.1以上的版本,应为从这个版本开始支持EL表达式
JSTL1.0默认不支持el表达式,不建议使用
二、JSTL标签库
核心标签库 (core) --- c
国际化标签 fmt
数据库标签 sql --Servlet
XML标签 xml
JSTL函数(EL函数) el
(1) <c:out>标签用于输出一段文本内容到pageContext对象当前保存的“out”对象中。
输出默认值:输出常量:HTML转义输出:输出变量
<h1>HTML转义输出</h1><hr>
<a href="#">xxx</a>
<c:out value="<a href='#'>xxx</a>" ></c:out>
${fn:escapeXml('<a href="#">xxx</a>') }
<h1>输出默认值</h1><hr>
<%
String addr = "西二旗";
//pageContext.setAttribute("addr",addr);
%>
<c:out value="${addr}" default="北京"></c:out>
${addr == null?"北京" : addr }
<h1>输出变量</h1><hr>
<%
String name = "无双";
pageContext.setAttribute("name",name);
%>
<c:out value="${name}"></c:out>
${name }
<h1>输出常量</h1><hr>
<c:out value="阿斯蒂芬"></c:out>
${"啦啦啦啦" }
(2)<c:set>
设置或修改域中的属性值:设置或修改域中的Map的值:修改域中的JavaBean的属性的值
注:可以利用标签设置和修改域中相关对象的值,但是前提是放到域中去。
也就是说,<c:set>标签是帮助操作域中对象属性的。
<span style="color:#000000;">
<h1>修改域中的JavaBean的属性的值</h1><hr>
<%
Person p = new Person();
pageContext.setAttribute("p",p);
%>
<c:set target="${p}" property="name" value="克林顿"></c:set>
${p.name }
<h1>设置或修改域中的Map的值</h1><hr>
<%
Map map = new HashMap();
pageContext.setAttribute("map",map);
%>
<c:set target="${map}" property="cellphone" value="10010"></c:set>
<c:set target="${map}" property="cellphone" value="10086"></c:set>
${map.cellphone }
<h1>设置或修改域中的属性值</h1><hr>
<c:set var="name" value="韦小宝"></c:set>
<c:set var="name" value="阿珂"></c:set>
${name }</span>
(3) <c:remove>标签用于删除各种Web域中的属性
注:可以指定域,不指定默认全部删除。
<span style="color:#000000;"><%
pageContext.setAttribute("name","蓝精灵");
request.setAttribute("name","伏地魔");
session.setAttribute("name","机器猫");
application.setAttribute("name","蜡笔小新");
%>
<c:remove var="name"/>
${name }</span>
(4) <c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常
Var 代表如果catch块捕获异常,就将他保存到var声明的变量中,并保存在当前page域中。
<c:catch var="e">
<%
int i = 1/0;
%>
</c:catch>
${e.message }