`

jsp自定义标签自学笔记(二)

    博客分类:
  • jsp
阅读更多
上一回学习了自定义标签库的写法。但是“hello world”级别的标签是远远不能满足我们如狼似虎的求知欲的。这回写个带名字的输入框。(知识就像美女,勇敢的扑过去吧!)

1、InputTag.java
package fox.tags.hello;

import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class InputTag extends TagSupport{
	
	private String name="";

	public void setName(String name) {
		//set方法必须有
		this.name = name;
	}

	@Override
	public int doStartTag() throws JspException {
		return normalInput();
	}
	
	private int normalInput(){
		JspWriter out=this.pageContext.getOut();
		StringBuffer sb=new StringBuffer("");
		sb.append("<input type=\"text\" name=\"");
		sb.append(name);
		sb.append("\"/>");
		try {
			out.write(sb.toString());
		} catch (IOException e) {
			e.printStackTrace();
		}
		return this.SKIP_BODY;
	}
	
}


2、hello.tld
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
 <tlib-version>1.0</tlib-version>
 <jsp-version>1.2</jsp-version>
 <short-name>shortname</short-name>
 <tag>
  <name>hello</name>
  <tag-class>fox.tags.hello.HelloTag</tag-class>
 </tag>
 <tag>
 	<name>einput</name>
 	<tag-class>fox.tags.hello.InputTag</tag-class>
 	<attribute>
 		<name>name</name>
 		<required>false</required>
 		<!-- rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式. -->
 		<rtexprvalue>true</rtexprvalue>
 	</attribute>
 </tag>
</taglib>


3、web.xml的配置和(一)是相同的
<?xml version="1.0" encoding="UTF-8"?>
<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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>
  	<taglib>
  		<taglib-uri>/hello-tags</taglib-uri>
  		<taglib-location>/WEB-INF/tld/hello.tld</taglib-location>
  	</taglib>
  </jsp-config>
</web-app>


4、引用自定义的标签
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="/hello-tags"  %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    <f:hello></f:hello><br/>
    <f:einput name="myname"></f:einput>
  </body>
</html>

分享到:
评论

相关推荐

    java,jsp,jdbc自学所用笔记和ppt

    理解JSP生命周期,如何使用JSP内置对象(如request、response、session、pageContext等),以及如何编写自定义标签库(Tag Libraries)是学习JSP的重要部分。 3. **JDBC**: JDBC是Java与数据库交互的标准API,它...

    java笔记自学资料

    这篇笔记自学资料主要涉及了Java Web开发中的核心概念,包括字符编码处理、JSP指令、JSP动作标签以及Servlet相关知识。让我们详细解析一下这些知识点。 1. 字符编码处理: 在Java Web开发中,处理字符编码是非常...

    struts2自学笔记

    Struts2自学笔记 Struts2是Java Web开发中的一款广泛应用的MVC框架,它基于Model-View-Controller设计模式,旨在简化企业级应用的开发流程。本自学笔记将深入探讨Struts2的核心概念、主要功能及其实现原理。 1. **...

    java自学笔记

    Java自学笔记概述 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。这份“java自学笔记”涵盖了从基础到进阶的多个Java知识点,旨在帮助初学者系统地学习并掌握...

    JAVA自学笔记,一点一点积累的!

    Java自学笔记是一个逐步积累的过程,涵盖了许多核心概念和实践技巧。这份笔记的目的是帮助初学者系统地理解并掌握Java这门强大的编程语言。下面将详细阐述一些关键知识点,旨在为你的学习之路提供清晰的指导。 1. *...

    Struts2自学笔记——Struts2的文件上传

    这篇自学笔记将深入探讨Struts2的文件上传机制。 1. **文件上传原理** 文件上传是基于HTTP协议的POST请求实现的。在HTML表单中,通过`&lt;input type="file" /&gt;`元素让用户选择本地文件。当用户提交表单时,浏览器会...

    struts自学笔记

    - Struts2的OGNL负责类型转换,并提供了内置的转换器,支持多种基本类型和自定义类型。 6. **验证机制**: - Struts1的验证可以通过ActionForm的validate方法或Validator扩展来实现。 - Struts2支持validate方法...

    Struts2超详细学习笔记分享(献给自学新人)

    以上内容仅是Struts2学习的一部分,实际开发中,你还需要掌握Action类的编写,配置文件的使用,拦截器的自定义,以及Struts2提供的各种结果类型和标签库的运用。通过深入理解和实践,你将能够熟练运用Struts2框架...

    java学习笔记(自己参加培训时写的)

    6. **JSP基础**:标签中提到了"jsp基础",JSP(JavaServer Pages)是用于创建动态Web内容的技术,可能有一些关于JSP指令、脚本元素和动作的笔记。 7. **MySQL数据库**:"100517_MySQL.txt"表明文件包含了有关MySQL...

    Java+JDK+6学习笔记课件林学良.rar

    课程会介绍如何使用try-catch-finally语句块处理运行时错误,以及如何自定义异常,使程序在遇到问题时能够优雅地处理。 4. **集合框架**:Java集合框架包括List、Set、Map等数据结构,提供了高效存储和操作数据的...

    Java 学习笔记极其详细版(包括一些个人色彩不仅仅是纯笔记)

    ### Java 学习笔记极其详细版(包括一些个人色彩不仅仅是纯笔记) #### 内容概览 本学习笔记旨在提供一份全面深入的Java教程,它不仅涵盖了Java的基础知识,还包括了作者个人的见解和实践经验。适合Java初学者、...

    JQuery.rar_Jsp/Servlet_Java_

    - **自定义动画**: 使用`animate()`函数可以创建自定义的动画效果,如改变宽度、高度、颜色等属性。 ### 3. AJAX - **$.ajax()**: 这是jQuery的核心AJAX方法,可以发送异步HTTP请求。例如: ```javascript $.ajax...

    Java Grossip

    作为“良葛格Java学习笔记”,这个压缩包文件很可能是包含了一位学习者在Java编程语言学习过程中的积累和心得,旨在帮助初学者或自学者更好地理解和应用Java。 Java是一种广泛使用的面向对象的编程语言,由Sun ...

    myJavaEducation

    【标题】"myJavaEducation" 是一个与...这个压缩包对初学者和进阶者都是宝贵的资源,不仅可以自学Java,还可以作为复习和巩固知识的工具。通过这个库,学习者可以按照模块顺序逐步学习,同时实践编程,加深理解和记忆。

Global site tag (gtag.js) - Google Analytics