后台类:
package ns.taglib;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class arrayListShowTab extends SimpleTagSupport {
// 要显示的arraylist数组
private ArrayList arr;
// arraylist 中对应map要显示的字段名称
private Map map;
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public void doTag()throws JspException,IOException
{
try{
Writer out = getJspContext().getOut();
String tabString = "<table border='1' id='tagTab'>";
String td="<tr>";
ArrayList keyList = new ArrayList();
ArrayList valList = new ArrayList();
for(Iterator i = map.keySet().iterator();i.hasNext();){
Object key = i.next();
keyList.add(key.toString());
Object val = map.get(key);
td +="<td>"+val.toString()+"</td>";
valList.add(val.toString());
}
td += "</tr>";
tabString += td;
for(int i=0;i<arr.size();i++){
String tdInfo ="";
Map mp = (Map) arr.get(i);
for(int t=0;t<keyList.size();t++){
tdInfo += "<td>"+mp.get(keyList.get(t).toString()).toString()+"</td>";
}
tabString += "<tr>"+tdInfo+"</tr>";
}
out.write(tabString);
}catch(Exception e){
e.printStackTrace();
}
}
public ArrayList getArr() {
return arr;
}
public void setArr(ArrayList arr) {
this.arr = arr;
}
}
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
web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>arrTab Demo</description>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>TagDemo</short-name>
<uri>/arrTab</uri>
<tag>
<!-- 定义标签名 -->
<name>arrTab</name>
<!-- 定义标签处理类 -->
<tag-class>ns.taglib.arrayListShowTab</tag-class>
<!-- 定义标签体为空 -->
<body-content>empty</body-content>
<!-- 配置标签属性: -->
<attribute>
<name>arr</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
<attribute>
<name>map</name>
<required>true</required>
<fragment>true</fragment>
</attribute>
</tag>
</taglib>
jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="arrtab" uri="/arrTab"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
ArrayList arrlist = new ArrayList();
Map map = new HashMap();
map.put("id","1");map.put("name","jim");map.put("sex","boy");map.put("phone","15130189936");map.put("mes","hello world");
arrlist.add(map);
Map mapp = new HashMap();
mapp.put("mes","信息");
mapp.put("id","编号");// 编号
mapp.put("name","姓名");
mapp.put("sex","性别");
mapp.put("phone","电话");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'tagTs.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<arrtab:arrTab
arr="<%=arrlist %>"
map="<%=mapp %>"
/>
</body>
</html>
参考资料:
http://book.csdn.net/bookfiles/832/10083225007.shtml
分享到:
相关推荐
web自定义标签简单应用,采用自定义标签的技术实现一个JSP页面标签,实现页面输出要求为:当上午访问为“上午好,欢迎您:XXX”,下午访问为“下午好,欢迎您:XXX”。其中XXX为从session中取出当前系统的用户名。
jsp标签库的应用可以简化我们在编写页面代码量;使我们每一个人更加轻松的去编程
想要在 JavaServer Pages (JSP) 应用程序中添加自定义标签吗?本教程将为您展示如何用这些标签编写类似于 JSP 技术自带操作 —— 如 jsp:useBean、jsp:getProperty 和 jsp:forward —— 的自定义操作。介绍如何用...
最详细,最全面的jsp标签自定义方法,实例,并结合一些实际应用,扩展的复杂标签的使用。
JSP应用开发-自定义标签的使用.pptx
想要在 JavaServer Pages (JSP) 应用程序中添加自定义标签吗?本教程将为您展示如何用这些标签编写类似于 JSP 技术自带操作 —— 如 jsp:useBean、jsp:getProperty 和 jsp:forward —— 的自定义操作。介绍如何用...
关于自定义标签的应用和配置的全流程!给大家一个帮助,例子简单但是功能齐全!
除了核心 JSP 标记,如 jsp:include 之外,定制标记库工具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作。一旦您创建了定制标记库 ( 简称 taglib) ,当您扩展项目或转向另一个项目时您可以重复使用这些...
简单的自定义标签入门例子,主要结构是 两个处理类加一个标签应用的jsp加一个表情描述tld文件。
jsp 自定义标签开发应用,
复杂自定义标记形式(如嵌套)有助于增强JSP页面的功能,扩充自定义标记的应用范围.本文以JSP页面中实现自定义标记的过程为基础,着重分析了标记处理类的处理流程和嵌套的自定义标记形式.提出了通过标记处理类可以...
第二部分详细对自定义标签开发、标准标签库(JSTL)使用、JSP2.0表达式(EL)、Servlet简单应用和高级应用以及讲解了Web2.0新特性Ajax的开发过程。JSP宝典的第三部分对最为流行的MVC解决方案Struts和数据库持久层...
如果有问题,请mail联系:arklis@126.com<br>运行环境是Window XP Professional SP2. 使用Tomcat 6.0, JDK 1.6, Xdoclet 1.2.3, Ant 1.7完成的第一个JSP自定义标签处理程序的web工程演示应用 (2. web ...
JavaServer Pages (JSP) 技术是 Java Servlet API 的扩展。JSP 页面通常由静态 HTML/XML 组件、自定义 JSP 标签和称为 scriptlet 的 Java 代码片段组成
第二部分详细对自定义标签开发、标准标签库(JSTL)使用、JSP2.0表达式(EL)、Servlet简单应用和高级应用以及讲解了Web2.0新特性Ajax的开发过程。JSP宝典的第三部分对最为流行的MVC解决方案Struts和数据库持久层...
这个压缩文件包含了多个有关实现分页功能的JSP代码片段,以及如何集成QQ菜单和各种JSP自定义标签库的示例。这些资源对于开发动态网站和网络应用程序的开发者来说非常有用,因为它们提供了一些预构建的功能模块,可以...
在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。JSTL标签库可分为5类: 核心标签...
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化... 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
JSP入门、HTTP和Servlet基础、JSP基本语法、JSP内置对象、JavaBean开发、MVC模式、JSP开发常用技巧、表达式语言、JSTL、自定义标签、JDBC、JSP实用开发技术、综合应用实例以及Struts/Hibernate/Spring初步等
本书比较全面地介绍了有关JSP的相关知识,并通过大量实例循序渐进地阐明如何构架和开发JSP动态网站、自定义标签开发和标准标签库JSTL使用以及Ajax等Web2.0新特性。本书首先介绍了JSP的概念和特征,使读者对JSP先有一...