`
954151190
  • 浏览: 47118 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简化的JSP自定义标签

    博客分类:
  • JSP
阅读更多

    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标签库的应用可以简化我们在编写页面代码量;使我们每一个人更加轻松的去编程

    JSP自定义标签详解

    刚刚接触学习JSP标签的学习资料,将脚本简化为标签

    jsp 自定义标签

    用于调用Javaean组件中的...JSP技术还提供了在自定义标签中封装其他动态功能的机制,这种自定标签是JSP语言的扩展。自定义标签通常是以标签库的形式出现的,它定义了一组相关的自定义标签,并包含实现这些标签的对象。

    JSP常用自定义标签集feilong-taglib.zip

    feilong-taglib,是 JSP常用自定义标签集 主要由两部分组成 Common 包含所有自定义标签的base类,以及常用的自定义标签 和el function  taglib  说明 isContains  判断一个值,...

    JSP自定义标签基础知识学习

    在实际的开发中,如为了简化JSP中出现大量的JSP脚本,那么我们需要使用标准标签库和EL表达式,但是和新标签库中提供的标签是有限的,不可能完全满足开发的需要。如:分页。因此需要学习如何自定义自己的标签库。 ...

    其他类别分页 QQ菜单 jsp标签-noka3.9.rar

    这个压缩文件包含了多个有关实现分页功能的JSP代码片段,以及如何集成QQ菜单和各种JSP自定义标签库的示例。这些资源对于开发动态网站和网络应用程序的开发者来说非常有用,因为它们提供了一些预构建的功能模块,可以...

    Tag的使用<JSP 2.0新特性>

    这是一个Tag文件使用的一个实例...它的是简化了自定义标签,呵呵...不准确.

    windchill JCA介绍

    1. Framework 简化和自定义:Windchill JCA 采用了 Framework 简化和自定义机制,使得开发者可以更方便地构建和维护应用程序。 2. XML 技术:Windchill JCA 广泛应用了 XML 技术,如 DTD、XSD 等,以确保数据的一致...

    JavaWeb 开发指南 PPT课件

    网站开发指南 清华大学出版社 1章 JSP技术简介 2章 JSP语法 3章 JSP内置对象 4章 Servlet技术介绍 5章 JavaBean与JSP技术 6章 JSP文件操作 ...24章 使用XDoclet简化JSP 25章 使用Ant管理JSP Web应用

    精通JSP-Web开发技术与典型应用 光盘代码

    \ch10\* 第10章 创建自定义标签所有例程代码 \ch11\* 第11章 使用Struts控制器简化MVC开发所有例程代码 \ch12\* 第12章 使用Servlet2.4过滤器和监听器所有例程代码 \ch13\* 第13章 数据库访问:JDBC所有例程代码...

    struts2标签使用方法

    在使用 Struts2 标签前,需要在 JSP 页面引入标签库,并在 web.xml 中声明要使用的标签。 property 标签 property 标签用于输出指定的值,例如输出用户的名称、年龄等信息。property 标签可以访问某一个包的类的...

    (TAG标签)jstl和struts2标签截取字符串[文].pdf

    jstl(JavaServer Pages Standard Tag Library)是一种用于Java Web开发的标签库,提供了多种有用的标签来简化JSP页面的开发。其中,jstl的标签可以用来截取字符串,本文将详细介绍jstl标签截取字符串的两种方法。 ...

    Struts2 标签库

    Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,...

    struts2 学习例子

    Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,...

    JSP+Struts+JSTL+EL新闻发布系统jsp

    前台制作采用标签制,分为系统标签和用户自义义标签两种,系统标签是自代的,用户不可以修改,而自定义标签则是用户根据相应的功能自己定制出来的,固此,可以自行删除或修改! 4、秉承JAVA开源理念,本新闻发布系统...

    JSF Java Server Faces (JSF)框架

    它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java Community Process (JCP) 推动,属于Java EE 5中的技术规范,而受到了厂商的广泛支持。  JSF(Java Server ...

    cms后台管理

    Jeecms是基于Spring注解,在自定义标签时对于实体类和dao service等注意注解的问题。 五 自定义标签及使用自己创建的表的实现过程 下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_...

    J2EE中文版指南 CHM格式 带全文检索

    第13章 在JSP页面中自定义标签 193 什么是自定义标签? 193 JSP页面的例子 193 使用标签 196 声明标签 196 标签种类 196 简单标签 196 带有属性的标签 196 带体的标签 197 在传递信息时选择属性还是体 197 定义脚本...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    JSP允许Java代码和HTML标签混杂在一起以简化页面的编辑工作,所有的改动无需重新进行编译:某个页面修改后,将在第一次被调用时自动编译。JSP里的Java代码段称为scrilmlet。 允许Java代码乘HTML混杂在一起的办法乍看...

Global site tag (gtag.js) - Google Analytics