1 基本概念
JSTL( JSP Standard Tag Library ) 被称为JSP标准标签库
开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护 难度
2 使用方式
下载JSTL的jar包并添加到项目中,下载地址为:https://tomcat.apache.org/download-taglibs.cgi
在JSP页面中使用taglib指定引入jstl标签库,方式为:
<!-- prefix属性用于指定库前缀 -->
<!-- uri 属性用于指定库的标识 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
示例:
<1>
<2>
3 常用核心标签
(1)输出标签
<c:out></c:out> 用来将指定内容输出的标签
示例
(2)设置标签
<c:set></c:set>用来设置属性范围值的标签
例子1:
例子2:
(3)删除标签
<c:remove></c:remove>用来删除指定数据的标签
// TODO
(4)单条件判断标签
<c:if test = "EL条件表达式">
满足条件执行
</c:if>
(5)多条件判断标签
<c:choose>
<c:when test="EL表达式">
满足条件执行
</c:when>
...
<c:otherwise>
不满足上述when条件时执行
<c:otherwise>
</c:choose>
(6)循环标签
<c:forEach var="循环变量" items="集合">
...
</c:forEach>
4 常用函数标签
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
5 常用格式化标签
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
6 自定义标签
如果上面几个标签不能满足需求,程序员也可以自定义标签,步骤如下:
编写标签类继承SimpleTagSupport类或TagSupport类并重写doTag方法或doStartTag方法
public class HelloTag extends SimpleTagSupport {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void doTag() throws JspException, IOException {
JspWriter out = this.getJspContext().getOut();
out.println("自定义标签的参数为:" + name);
}
}
定义标签库文件(tld标签库文件)并配置标签说明文件到到WEB-INF下:
<tag>
<name>helloTag</name>
<tag-class>com.lagou.demo02.HelloTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>name</name>
<required>true</required>
</attribute>
</tag>
在JSP中添加taglib指令引入标签库使用:
<%@ taglib prefix="hello" uri="http://lagou.com" %>