JSP2.0的自定义标签更加简单,无需重写繁琐的doStrartTag和doEndTag等方法,即使是带标签体的标签,也与不带标签体的标签处理方法完全相同,无须重写doAfterBody等方法,通常只需重写doTag方法。
案例说明:功能迭代其标签和简单标签
1.书写标签处理类
package mytag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
* 简单标签类
*/
public class HelloWorldSimpleTag extends SimpleTagSupport{
@Override
public void doTag() throws JspException, IOException {
getJspContext().getOut().write("HelloWorldSimpleTag");
}
}
package mytag;
import java.io.IOException;
import java.util.Collection;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
* 简单标签处理类,继承SimpleTagSupport
*/
public class MyIteatorTag extends SimpleTagSupport {
//标签属性
private String bean;
public String getBean() {
return bean;
}
public void setBean(String bean) {
this.bean = bean;
}
//标签的处理方法,简单标签处理类,只需要重写doTag方法
@Override
public void doTag() throws JspException, IOException {
//从page scope中获取名为bean的集合属性
Collection<String> itemList = (Collection<String>)getJspContext().getAttribute(bean);
//遍历集合
for(String s:itemList){
//将集合的元素设置到page范围
getJspContext().setAttribute("item", s);
getJspBody().invoke(null);
}
}
}
2.创建TLD
<?xml version="1.0" encoding="GBK"?>
<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">
<!-- 标签版本 -->
<tlib-version>1.0</tlib-version>
<!-- 标签名称 -->
<short-name>MyIteatorTag</short-name>
<!-- 定义第一个个标签 -->
<tag>
<!-- 定义标签名称 -->
<name>helloWorld</name>
<!-- 定义标签的处理类 -->
<tag-class>mytag.HelloWorldSimpleTag</tag-class>
<!-- 定义标签体类空 -->
<body-content>empty</body-content>
</tag>
<!-- 定义第二个标签 -->
<tag>
<!-- 定义标签名称 -->
<name>iterator</name>
<!-- 定义标签处理类 -->
<tag-class>mytag.MyIteatorTag</tag-class>
<!-- 定义标签体,该标签体是不允许脚本的标签 -->
<body-content>scriptless</body-content>
<!-- 定义标签属性 -->
<attribute>
<name>bean</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
3.配置WEB.XML (可省略)
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<jsp-config>
<taglib>
<taglib-uri>/iterator</taglib-uri>
<taglib-location>/WEB-INF/MyiteratorTag.tld</taglib-location>
</taglib>
</jsp-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4.JSP调用
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="/iterator" prefix="iterss" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>表达式语言-逻辑运算符</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>
<iterss:helloWorld/>
<%
//创建输出对象
List<String> a = new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
//将a放入 page 范围内
pageContext.setAttribute("a", a);
%>
<iterss:iterator bean="a">
${item }
</iterss:iterator>
</body>
</html>
分享到:
相关推荐
jsp标签库的应用可以简化我们在编写页面代码量;使我们每一个人更加轻松的去编程
刚刚接触学习JSP标签的学习资料,将脚本简化为标签
用于调用Javaean组件中的...JSP技术还提供了在自定义标签中封装其他动态功能的机制,这种自定标签是JSP语言的扩展。自定义标签通常是以标签库的形式出现的,它定义了一组相关的自定义标签,并包含实现这些标签的对象。
feilong-taglib,是 JSP常用自定义标签集 主要由两部分组成 Common 包含所有自定义标签的base类,以及常用的自定义标签 和el function taglib 说明 isContains 判断一个值,...
在实际的开发中,如为了简化JSP中出现大量的JSP脚本,那么我们需要使用标准标签库和EL表达式,但是和新标签库中提供的标签是有限的,不可能完全满足开发的需要。如:分页。因此需要学习如何自定义自己的标签库。 ...
这个压缩文件包含了多个有关实现分页功能的JSP代码片段,以及如何集成QQ菜单和各种JSP自定义标签库的示例。这些资源对于开发动态网站和网络应用程序的开发者来说非常有用,因为它们提供了一些预构建的功能模块,可以...
这是一个Tag文件使用的一个实例...它的是简化了自定义标签,呵呵...不准确.
1. Framework 简化和自定义:Windchill JCA 采用了 Framework 简化和自定义机制,使得开发者可以更方便地构建和维护应用程序。 2. XML 技术:Windchill JCA 广泛应用了 XML 技术,如 DTD、XSD 等,以确保数据的一致...
网站开发指南 清华大学出版社 1章 JSP技术简介 2章 JSP语法 3章 JSP内置对象 4章 Servlet技术介绍 5章 JavaBean与JSP技术 6章 JSP文件操作 ...24章 使用XDoclet简化JSP 25章 使用Ant管理JSP Web应用
\ch10\* 第10章 创建自定义标签所有例程代码 \ch11\* 第11章 使用Struts控制器简化MVC开发所有例程代码 \ch12\* 第12章 使用Servlet2.4过滤器和监听器所有例程代码 \ch13\* 第13章 数据库访问:JDBC所有例程代码...
在使用 Struts2 标签前,需要在 JSP 页面引入标签库,并在 web.xml 中声明要使用的标签。 property 标签 property 标签用于输出指定的值,例如输出用户的名称、年龄等信息。property 标签可以访问某一个包的类的...
jstl(JavaServer Pages Standard Tag Library)是一种用于Java Web开发的标签库,提供了多种有用的标签来简化JSP页面的开发。其中,jstl的标签可以用来截取字符串,本文将详细介绍jstl标签截取字符串的两种方法。 ...
Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,...
Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,...
前台制作采用标签制,分为系统标签和用户自义义标签两种,系统标签是自代的,用户不可以修改,而自定义标签则是用户根据相应的功能自己定制出来的,固此,可以自行删除或修改! 4、秉承JAVA开源理念,本新闻发布系统...
它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java Community Process (JCP) 推动,属于Java EE 5中的技术规范,而受到了厂商的广泛支持。 JSF(Java Server ...
Jeecms是基于Spring注解,在自定义标签时对于实体类和dao service等注意注解的问题。 五 自定义标签及使用自己创建的表的实现过程 下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_...
第13章 在JSP页面中自定义标签 193 什么是自定义标签? 193 JSP页面的例子 193 使用标签 196 声明标签 196 标签种类 196 简单标签 196 带有属性的标签 196 带体的标签 197 在传递信息时选择属性还是体 197 定义脚本...
JSP允许Java代码和HTML标签混杂在一起以简化页面的编辑工作,所有的改动无需重新进行编译:某个页面修改后,将在第一次被调用时自动编译。JSP里的Java代码段称为scrilmlet。 允许Java代码乘HTML混杂在一起的办法乍看...