1.jstl(java standard tag lib"jsp标准标签库")标签
(1)什么是jstl?
apache开发的一套jsp标签,后来捐献给了sun,sun将其命名为jstl。
(2)如何使用jstl?
step1.导包。在maven工程中的pox.xml中填加依赖。
step2.使用taglie指令来导入要使用的标签
<%@ taglib uri"" prefix="" %>
注:
uri属性用来指定要导入的标签的命名空间。
(命名空间是为了区分同名的元素,在元素前添加的一段说明,
通常是一个域名)
prefix属性用来指定命名空间的别名。
(3)几个核心标签
1)if标签
a.语法
<c:if test="" var="" scope="">
xxx
</c:if>
b.当test属性值为true时,执行标签体的内容,test属性值
可以使用el表达式来赋值。
c.var属性指定绑定名,scope属性指定绑定范围(可以是
page,request,seesion,application)。
2)choose标签
a.语法
<c:choose>
<c:when test="">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
b.when可以出现1次或者多次,表示一个分支(相当于一个if语句),
当test属性值为true时,执行标签体的内容。
c.otherwise可以出现0次或者1次,表示例外。
3)forEach 标签(forEach.jsp)
a.语法
<c:forEach items="" var="" varStatus="">
</c:forEach>
b.items指定要遍历的集合或者数组,可以使用el表达式来赋值
c.var属性值绑定名,绑定范围固定式pageContext
注:
该标签每次从集合或者数组中取一个元素,然后将该元素
绑定到pageContext上。
d.varStatus属性指定绑定名,绑定范围固定是pageContent。
注:
绑定值是一个特殊的对象,该对象提供了一个特殊的方法,
可以通过这些方法来获得当前遍历的状态:
getInde():用来获得当前正在被遍历的元素的下标,下标从0开始。
getCount():用来获得当前是第几次遍历。
2.自定义标签
(1)编程步骤
step1.写一个类,继承SimpleTagSupport类。
注:
jsp标签技术有俩个版本,即复杂标签技术(old)和简单标签技术(new)。
step2.override SimpleTagUpport类的doTag方法,在该方法里面 添加响应的处理逻辑。
step3.在标签的描述文件(.tld文件)添加该标签的说明。
(2)编程步骤
容器依据标签的命名空间找到标签的描述文件(.tld文件),然后依据标签名
找到对应的标签类。
接下来,容器会将该标签实例化,将标签的属性赋给该实例对应的属性(通过调用对应的set方法),最后,调用标签实例的doTag方法。