您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

自定义标签的开发及使用自定义标签实现迭代foreach循环

来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:43 点击:

在JSP中,规范简化了标签库的开发,在JSP2中开发自定义标签只需如下三个步骤:
一、开发自定义标签处理类
二、建立一个*.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>();

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • JSP与Servlet
  • 打开一个jsp页面默认查询所有数据,调用action
  • 使用JSP标签库验证用户的输入(2)完
  • 自己动手写MiniBBS系列(基本篇)之用户登录
  • JSP取当前日期
  • WIN98/2000下的jsp服务器
  • 自定义JSP标签(tag)浅议
  • Struts学习傻瓜式入门篇
  • JSP内建对象(二)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1