`
954151190
  • 浏览: 47471 次
  • 性别: 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自定义标签。 首先,自定义标签的实现主要依赖于两个核心概念:Tag接口和TagSupport类。`Tag`接口定义了自定义标签必须实现的方法,如`doStartTag()`和`doEndTag()`,它们...

    jsp 自定义标签的使用

    本教程将深入探讨JSP自定义标签的使用,同时结合实例介绍分页和下拉框绑定值的封装。 一、JSP自定义标签基础 1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它...

    jsp自定义标签编写的分页

    总结来说,通过学习和实践JSP自定义标签,我们可以构建高效、灵活的Web应用程序,比如这里的分页系统,它不仅简化了页面的开发,还增强了系统的扩展性和可维护性。在实际项目中,结合良好的设计原则和最佳实践,...

    由浅到深详细讲解JSP自定义标签

    本文将深入讲解JSP自定义标签的相关概念、格式、处理过程以及创建和使用自定义标签库的基本步骤。 1. 基本概念: - **标签**:JSP标签是XML元素,用于简化JSP页面,使其更易读且支持多语言版本。标签名和属性区分...

    jsp的自定义标签

    **JSP自定义标签详解** 在Java服务器页面(JSP)技术中,自定义标签是扩展JSP功能的重要手段,它允许开发者创建可重用的组件,这些组件的行为类似于HTML标签,但具备更强大的功能和灵活性。这篇博客将深入探讨JSP...

    JSP自定义标签 例子

    本教程将深入探讨JSP自定义标签的概念、创建过程及其实际应用。 ### JSP自定义标签概念 JSP自定义标签是对标准JSP标签(如`&lt;jsp:include&gt;`或`&lt;c:forEach&gt;`)的扩展,它们提供了更高级别的抽象,允许开发者定义自己...

    JSP自定义标签JSP自定义标签

    综上所述,JSP自定义标签提供了一种强大的机制,使得JSP开发者能够创建定制的、可重用的代码片段,提升Web应用的开发效率和质量。通过理解和熟练运用自定义标签,开发者可以更好地组织和管理JSP项目,实现更高效的...

    Jsp自定义标签通用数据库查询

    在这个名为“Jsp自定义标签通用数据库查询”的项目中,我们探讨的关键知识点是如何利用自定义标签实现一个通用的数据库查询功能,使其能够适用于多种数据库系统。 首先,我们需要了解JSP自定义标签的工作原理。...

    一个JSP自定义标签的例子。格式化基础数据

    ### JSP自定义标签示例:格式化基础数据 #### 一、引言 Java Server Pages(JSP)是Sun Microsystems公司推出的一种基于Java技术的动态网页开发技术。它允许开发者将HTML、XML等静态页面内容与Java代码相结合,...

    jsp自定义标签实例

    **JSP自定义标签实例详解** 在Java服务器页面(JSP)开发中,自定义标签是一种强大的工具,它允许开发者创建可重用的组件,提高了代码的可读性和可维护性。本文将深入探讨JSP自定义标签的概念、实现过程以及实际...

    JSP自定义标签 无限级树-支持各节点图标自定义

    总结来说,“JSP自定义标签 无限级树-支持各节点图标自定义”是一个将后端逻辑与前端展示紧密结合的实例,通过自定义标签简化了复杂逻辑的实现,同时利用JavaScript和AJAX提供了动态的用户交互体验。这样的技术方案...

    Jsp 自定义标签 分页TagSuport

    综上所述,`TagSupport`是JSP自定义标签实现的基础,通过它我们可以创建出强大的、符合XML规范的自定义标签库,提升代码复用性,简化JSP页面的编写。同时,了解和掌握自定义标签的生命周期以及`TagSupport`类的关键...

    jsp自定义标签Tag封装接口和实现方法

    本篇文章将深入探讨JSP自定义标签的Tag封装接口和实现方法。 ### 一、JSP自定义标签概述 JSP自定义标签是通过实现Java的特定接口来创建的,这些接口定义了标签的行为和生命周期。自定义标签的使用能够将业务逻辑与...

    JSP自定义标签(一)_树形下拉选择菜单

    ### JSP自定义标签——树形下拉选择菜单解析 #### 一、概念与应用场景 在JSP(Java Server Pages)开发中,自定义标签是一种非常实用的技术,它允许开发者创建可重用的代码组件,简化JSP页面的编写工作。本文档将...

    jsp自定义标签库问答集锦.

    ### jsp自定义标签库知识点详解 #### 一、什么是jsp自定义标签? 1. **概念**:JSP 自定义标签是一种将复杂的功能封装成一个简单的标签的方式,它允许开发者创建可重用的代码组件,这些组件可以在 JSP 页面中像...

    jsp自定义迭代标签

    ### JSP自定义迭代标签详解 #### 一、引言 在JSP(JavaServer Pages)开发中,自定义标签可以极大地提高代码的复用性和可...通过这种方式,可以有效地封装复杂的逻辑,简化JSP页面的编写,提高开发效率和代码质量。

    JSP自定义标签开发入门

    **JSP自定义标签开发入门** 在Java Web开发中,JSP(JavaServer Pages)是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。然而,为了提高代码的可读性和可维护性,通常会推荐...

Global site tag (gtag.js) - Google Analytics