JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库。
Web 程序开发人员能够利用JSTL和EL来开发Web 程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序可读性、维护性和方便性。
JSTL是一个标准的已制定好的标签库,可以应用于各种领域,如:基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。JSTL所提供的标签函数库主要分为五大类:
(1)核心标签库 (Core tag library)
(2)I18N 格式标签库 (I18N-capable formatting tag library)
(3)SQL 标签库 (SQL tag library)
(4)XML 标签库 (XML tag library)
(5)函数标签库 (Functions tag library)
1, 向页面输出内容
<c:out></c:>
共3个参数:
value, 显示输出的内容, 与对象相关时要结合EL表达式
escapeXml, 只有"true","false"两个值, 表示是否转换字符
字符 | 字符实体代码 | 字符 | 字符实体代码 |
< | < | > | > |
' | ' | " | " |
& | & |
default, 可选属性, 当value值为null或者""时显示的内容
2, 在指定的范围内保存某个变量或者某个对象的某个属性值
<c:set></c:set>
共5个参数:
var, 指定变量名
value, 指定变量的值
scope, 用于变量的作用域(page|request|session|application)
target, 用于指定一个目标对象, 比如JavaBean
property, 用于指定对象内某个属性值
当指定为一个对象的时候, 这里用一个JavaBean作为实例:
<jsp:useBean class="com.hanqi.dao.USER" id="user" /> <c:set target="${user}" property="userID" value="测试用户的ID"></c:set> <c:out value="${user.userID}" ></c:out><br> <c:out value="${user.getUserID()}" ></c:out>
private String UserID; public String getUserID() { return UserID; } public void setUserID(String UID) { this.UserID = UID; }
用来指定目标对象只能用target, 并且后面必须使用EL表达式, property后面的值为这个JavaBean内的实体类的属性名, 即set方法后面的部分(代码中的标红部分), 并且首字母小写,
输出的时候可以有两种方法, 可以调用get方法, 后者直接调用属性名
3, 移除变量标签
<c:remove></c:remove>
共2个参数:
var, 用于指定要移除的变量名
scope, 指定变量的有效范围(page|request|session|application)
<% request.setAttribute("a", "这是request的测试内容"); %> <c:remove var="a" scope="request"></c:remove> <c:out value="${requestScope.a}" default="变量被移除了"></c:out>
页面输出结果为: 变量被移除了
需要注意的是: 如果被移除的变量不存在, 整个代码也不会报错, 如果不指定范围的话, 将会移除所有符合这个变量名的变量
4, 捕获异常标签
<c:catch></c:catch>
共1个参数:
var, 用于指定储存异常信息的变量, 可以用<c:out></c:out>做一下输出
<c:catch var="error"> <jsp:useBean class="com.hanqi.dao.USER" id="user" /> <c:set target="${user}" property="userID" value="测试用户的ID"></c:set> <c:out value="${user.getUserID()}" ></c:out> </c:catch> <c:out value="${error}" />
当代码中存在异常的时候会输出异常信息