-
标签语言特点
<开始标签> 标签体</结束标签>
空标签
<开始标签 属性名=“属性值”></结束标签>
<开始标签/> -
自定义标签的开发及使用步骤
2…1 创建一个标签助手类(继承BodyTagSupport)
标签属性必须助手类的属性对应,且要提供对应的get/set方法
private List test;
private String item;
public List getTest() {
return test;
}
public void setTest(List test) {
this.test = test;
}
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
2.2 创建标签库描述文件(tld),添加自定义标签的配置
注:tld文件必须保存到WEB-INF目录或其子目录
<tag>
<name>foreach</name>
<tag-class>com.zking.tag.ForeachTag</tag-class>
<body-content>jsp</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>item</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
2.3 在JSP通过taglib指令导入标签库描述文件,并通过指定后缀访问此自定义标签
<%@ taglib prefix="i" uri="/zking" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
List list=new ArrayList();
for (int i=0;i<100;i++){
list.add("肉蛋"+i+"号");
}
session.setAttribute("myl",list);
%>
<i:foreach test="${myl}" item="a">
${a}
</i:foreach>
</body>
</html>
- 重写标签助手类三个方法:
1.doStartTag 开始标签
1.1 EVAL_BODY_INCLUDE:计算标签体
1.2 SKIP_BODY:跳过标签体
2.doAfterBody 标签体
2.1 SKIP_BODY:计算标签体 (计算一次标签体)
2.2 EVAL_BODY_AGAIN:再次计算标签体
3.doEndTag 结束标签
3.1 SKIP_PAGE: 跳过页面后续
3.2 EVAL_PAGE: 计算页面