自定义标签的开发及使用自定义标签实现迭代foreach循环
来源:互联网 发布:数据库导入excel表格 编辑:程序博客网 时间:2024/04/29 11:46
一、开发自定义标签处理类
二、建立一个*.tld文件
三、在JSP文件中使用自定义标签
自定义标签类应该继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,除此之外,JSP自定义标签类还有如下要求:
一、如果标签类包含属性,每个属性都需要提供对应的getter和setter方法
二、重写doTag()方法,这个方法负责生成页面内容
下面开始标签的开发:
一、开发自定义标签处理类 ForeachTag,实现迭代List集合,数组的功能
public class ForeachTag extends SimpleTagSupport {
// 标签属性
private String items;
private String var;
//这里省略 getter setter方法
@Override
public void doTag() throws JspException, IOException {
Iterator ite = null;
Object tempItem = getJspContext().getAttribute(items);
// 如果是集合
if (tempItem instanceof Collection) {
ite = ((Collection) tempItem).iterator();
}
// 如果是数组
else if (tempItem instanceof Object[]) {
ite = Arrays.asList((Object[]) tempItem).iterator();
} else {
throw new RuntimeException("不能转换");
}
// 进行迭代
while (ite.hasNext()) {
Object obj = ite.next();
getJspContext().setAttribute(var, obj);
//输出标签体
getJspBody().invoke(null);
}
}
}
二、开发*.tld文件。在web-inf目录下新建mytaglib.tld文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>this is my tag library Definition</description>
<tlib-version>1.0</tlib-version>
<short-name>mytaglib</short-name>
<uri>http://127.0.0.0/servlet/mytaglib</uri>
<tag>
<name>foreach</name>
<tag-class>taglib.ForeachTag</tag-class>
<body-content>scriptless</body-content>
<!-- 指定foreach循环中的items属性和var属性 -->
<attribute>
<name>items</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
<attribute>
<name>var</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
</tag>
</taglib>
三、开发JSP,并在JSP中使用自定义的标签实现list集合的迭代
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" errorPage="" %>
<%@page import="java.util.*" %>
<%@taglib uri="http://127.0.0.0/servlet/mytaglib" prefix="mytag" %>
<%
List<String> lists=new ArrayList<String>();
lists.add("疯狂Java讲义");
lists.add("轻量级JavaEE企业级应用");
lists.add("疯狂Ajax讲义");
pageContext.setAttribute("lists",lists);
String[] ary=new String[3];
ary[0]="A";
ary[1]="B";
ary[2]="C";
pageContext.setAttribute("ary",ary);
%>
<html>
<head>
<title>自定义标签-仿foreach标签 功能:循环List集合,一维数组</title>
</head>
<body>
<h3>这里迭代的是集合</h3>
<table style="border:solid 1px black; width=400xp;">
<mytag:foreach items="lists" var="item">
<tr>
<td>${item }</td>
</tr>
</mytag:foreach>
</table>
<br />
<h3>这里迭代的是数组</h3>
<mytag:foreach items="ary" var="item">
${item }
</mytag:foreach>
</body>
</html>
JSP文件中需注意的问题:使用<%@taglib %>导入自定义开发的标签,uri路径与mytaglib.tld文件中指定的uri路径相同
- 自定义标签的开发及使用自定义标签实现迭代foreach循环
- 自定义标签的开发及使用自定义标签实现迭代foreach循环
- JSP自定义标签开发Foreach迭代标签
- 自定义标签------forEach循环
- 使用JSTL开发jsp自定义标签开发---迭代标签
- jsp自定义标签(5):开发迭代的标签
- javaweb之自定义标签库——简单的foreach标签(对List迭代)
- 自定义迭代标签
- 自定义迭代标签
- 自定义迭代标签
- JSP自定义标签的开发及使用
- JSP:自定义标签之开发迭代标签
- 【自定义标签开发】09-标签案例-开发foreach标签
- 自定义forEach标签
- jsp简单自定义标签的forEach遍历及转义字符
- jsp简单自定义标签的forEach遍历及转义字符
- Taglib自定义标签之三简单仿JSTL中带标签体的ForEach循环
- java 中使用自定义标签模仿jstl的 ForEach()
- .net实现语音搜索(仅限WebKit内核浏览器)
- Windows上Maven3.x的安装
- CUnit在Linux下安装配置
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- 捕获链接文字的简单正则
- 自定义标签的开发及使用自定义标签实现迭代foreach循环
- PHP中SESSION和cookie的使用和区别
- 小错误引发大问题 clr_bit的使用
- PHP学习笔记
- 打印USB 设备热插拔的字符信息
- Cocos2d-x学习(二十):cocos2d中的容器CCArray
- 互联网下一个阶梯是什么
- Monkeyrunner实战——自动化脚本——控件id查找——控件id输入
- [11月12日的脚本] 配置虚拟内存页文件大小 (PowerShell)