`

自定义标签(四) 动态属性的应用

阅读更多

ListTag.java

package tag;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.DynamicAttributes;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * @作者 :goby
 * @创建时间:2009-6-14 上午11:19:47
 * @更新时间:$Date$
 */
public class ListTag extends TagSupport implements DynamicAttributes {
	
	public void setName(String name) {
		this.name = name;
	}

	private String name;
	private HashMap map = new HashMap();
	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		JspWriter out = pageContext.getOut();
		Set list = map.entrySet();
		try{
			out.print("<select name='"+name+"'>");			
Iterator it = list.iterator();
			while(it.hasNext()){
				Map.Entry entry = (Map.Entry)it.next();
				out.print("<option value='");
				out.print(entry.getKey());
				out.print("'>");
				out.print(entry.getValue());
				out.print("</option>");
			}
out.print("</select>");
		}catch(Exception ex){
			ex.printStackTrace();
		}
		return super.doStartTag();
	}

	public void setDynamicAttribute(String uri, String localname, Object value)
			throws JspException {
		// TODO Auto-generated method stub
		map.put(localname, value);
	}
	
	

}

 

tag.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">

	<tlib-version>1.0</tlib-version>
	<short-name>it315</short-name>
	<uri>/taglib</uri>
		<tag>
		<name>list</name>
		<tag-class>tag.ListTag</tag-class>
		<body-content></body-content>
		<attribute>
			<description>description</description>
			<name>name</name>
			<requried>true</requried>
		</attribute>
		<dynamic-attributes>true</dynamic-attributes>
	</tag>
</taglib>

 

index.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/taglib" prefix="it315" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>
      
      <it315:list name="singer" n1="以及他很" n2="ss"/>
    </body>
</html>

  

 

分享到:
评论

相关推荐

    JSP自定义标签动态属性支持

    本篇将深入讲解如何在自定义标签中实现动态属性的支持。 首先,我们需要理解JSP自定义标签的基本结构。自定义标签通常由两部分组成:标签库描述符(TLD)和标签处理类。TLD文件定义了标签的名称、属性、行为等元数据...

    动态属性自定义标签

    通过掌握动态属性自定义标签,开发者能够构建更灵活、可扩展的JSP应用,使得页面代码更加简洁和易于维护。在实际开发中,结合使用EL表达式(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)...

    JSP标签、自定义标签,含有属性

    本资料包“JSP标签、自定义标签,含有属性”专注于讲解JSP中的两种主要标签类型:标准动作标签(JSP Standard Tags, JSTL)和自定义标签。 1. **JSP标准动作标签**: JSTL是一组符合JSR-52标准的标签库,包括核心...

    java web自定义标签的开发与应用

    四、自定义标签的应用场景 1. 数据绑定:将Java对象的属性绑定到HTML元素,例如显示用户信息。 2. 逻辑控制:实现复杂的条件判断或循环结构,避免在JSP页面中嵌入大量Java代码。 3. 功能组件:封装常见的功能,如...

    struts2 自定义标签

    四、自定义标签的应用示例 在`teststruts2`项目中,我们可能会有一个名为`CustomTagExampleAction`的Action类,它处理与自定义标签相关的业务逻辑。然后,在结果页面(比如`result.jsp`)中,我们可以这样使用自定义...

    tp自定义标签

    - 自定义标签的属性值可以是变量,例如`$age}"&gt;&lt;/xy:test&gt;`,ThinkPHP会自动处理变量替换。 通过以上步骤,你就能在ThinkPHP 3.0项目中成功地创建和使用自定义标签了。这不仅提高了代码的可维护性,也使得模板设计...

    HTML:自定义标签属性

    ### HTML:自定义标签属性详解 #### 一、引言 HTML 作为 Web 开发的基础语言之一,提供了丰富的标签及属性来构建网页内容。在实际应用中,有时我们需要为 HTML 元素添加额外的信息或功能,这就需要用到自定义属性...

    JSP自定义标签学习笔记

    本篇学习笔记将深入探讨JSP自定义标签的相关概念、创建方法以及实际应用。 一、概述 1.1 使用简单标签机制 JSP自定义标签提供了类似HTML标签的语法结构,通过自定义标签,开发者可以封装复杂的Java代码,使得页面...

    jsp 自定义标签实例

    1. **定义标签库描述符文件 (TLD, Tag Library Descriptor)**:TLD是XML格式的文件,用于声明自定义标签及其属性。例如,你可以创建一个名为`mytags.tld`的文件,并在其中定义一个名为`myTag`的标签。在TLD中,你...

    struts实现自定义标签

    四、使用自定义标签 完成上述步骤后,就可以在 JSP 页面中使用自定义标签了。通过引入标签库的 URI,我们可以像使用内置标签一样使用自定义标签。例如: ```jsp ``` 五、自定义标签示例 假设我们有一个自定义...

    jsp2.0 自定义标签和自定标签函数

    而"test1.tld"文件则是对一个自定义标签库的描述,它定义了自定义标签的名称、属性、返回类型等。通过查看这个文件,我们可以了解到自定义标签的具体配置和使用方法。 总结,JSP 2.0的自定义标签和自定义标签函数是...

    jsp 自定义标签的使用

    1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它包含了标签的元数据,如标签名称、属性、导出的类等信息。TLD文件通常以`.tld`为扩展名,需要放置在WEB-INF...

    java自定义标签.......java自定义标签

    在实际应用中,自定义标签可以用于各种场景,例如: - 数据格式化和展示,如日期、货币等。 - 用户界面组件,如分页、下拉框、树形结构等。 - 复杂的业务逻辑,如权限控制、数据验证等。 学习和使用Java自定义标签...

    自定义标签,标签实例,ppt

    在Java Web开发中,自定义标签...通过熟练掌握自定义标签的创建和使用,开发者可以构建更加高效、可维护的Web应用。阅读“自定义标签.pdf”和“page”文件,以及“第10章 自定义标签”将进一步加深对这一主题的理解。

    Web2.0体系学习(自定义标签)

    下面我们将深入探讨自定义标签的概念、工作原理以及如何在实际项目中应用它们。 自定义标签是JavaServer Pages (JSP)技术的一个关键特性,它允许开发者创建自己的标签库,这些标签可以像标准HTML标签一样在页面上...

    自定义标签

    - 权限控制:自定义标签可以用于判断用户权限,动态地显示或隐藏某些内容。 6. **工具支持** 开发自定义标签时,一些工具和框架提供了便利,如Apache Struts的Tiles和Spring Web Flow。这些工具提供了更高级别的...

    jsp自定义带属性的标签

    自定义标签可以带有属性,这些属性在标签被调用时可以传递特定的值,使得标签的使用更加灵活和强大。 #### 二、创建自定义带属性的标签步骤 1. **编写自定义标签类**:首先,你需要创建一个继承自`javax.servlet....

    Struts2自定义标签

    动态标签可以根据不同的属性值生成不同的标签逻辑,这使得自定义标签的功能更加强大。 自定义标签的应用场景非常广泛,比如用于显示复杂的数据结构,创建可重用的UI组件,或者封装复杂的业务逻辑。通过自定义标签,...

    html自定义标签的使用

    使用`display: block`或`display: inline-block`属性可以控制自定义标签的布局行为。 4. **JavaScript交互**:自定义标签可以与JavaScript进行交互,例如通过事件监听或数据绑定。可以使用`document.querySelector`...

    一个用于分页的自定义标签

    本项目提供了一个用于分页的自定义标签,适用于那些需要在网页上进行数据分页展示的应用。 首先,我们要理解什么是JSP自定义标签。在JSP中,自定义标签是通过TLD(Tag Library Descriptor)文件定义的,它允许...

Global site tag (gtag.js) - Google Analytics