上一回学习了自定义标签库的写法。但是“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>
分享到:
相关推荐
理解JSP生命周期,如何使用JSP内置对象(如request、response、session、pageContext等),以及如何编写自定义标签库(Tag Libraries)是学习JSP的重要部分。 3. **JDBC**: JDBC是Java与数据库交互的标准API,它...
这篇笔记自学资料主要涉及了Java Web开发中的核心概念,包括字符编码处理、JSP指令、JSP动作标签以及Servlet相关知识。让我们详细解析一下这些知识点。 1. 字符编码处理: 在Java Web开发中,处理字符编码是非常...
Struts2自学笔记 Struts2是Java Web开发中的一款广泛应用的MVC框架,它基于Model-View-Controller设计模式,旨在简化企业级应用的开发流程。本自学笔记将深入探讨Struts2的核心概念、主要功能及其实现原理。 1. **...
Java自学笔记概述 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。这份“java自学笔记”涵盖了从基础到进阶的多个Java知识点,旨在帮助初学者系统地学习并掌握...
Java自学笔记是一个逐步积累的过程,涵盖了许多核心概念和实践技巧。这份笔记的目的是帮助初学者系统地理解并掌握Java这门强大的编程语言。下面将详细阐述一些关键知识点,旨在为你的学习之路提供清晰的指导。 1. *...
这篇自学笔记将深入探讨Struts2的文件上传机制。 1. **文件上传原理** 文件上传是基于HTTP协议的POST请求实现的。在HTML表单中,通过`<input type="file" />`元素让用户选择本地文件。当用户提交表单时,浏览器会...
- Struts2的OGNL负责类型转换,并提供了内置的转换器,支持多种基本类型和自定义类型。 6. **验证机制**: - Struts1的验证可以通过ActionForm的validate方法或Validator扩展来实现。 - Struts2支持validate方法...
以上内容仅是Struts2学习的一部分,实际开发中,你还需要掌握Action类的编写,配置文件的使用,拦截器的自定义,以及Struts2提供的各种结果类型和标签库的运用。通过深入理解和实践,你将能够熟练运用Struts2框架...
6. **JSP基础**:标签中提到了"jsp基础",JSP(JavaServer Pages)是用于创建动态Web内容的技术,可能有一些关于JSP指令、脚本元素和动作的笔记。 7. **MySQL数据库**:"100517_MySQL.txt"表明文件包含了有关MySQL...
课程会介绍如何使用try-catch-finally语句块处理运行时错误,以及如何自定义异常,使程序在遇到问题时能够优雅地处理。 4. **集合框架**:Java集合框架包括List、Set、Map等数据结构,提供了高效存储和操作数据的...
### Java 学习笔记极其详细版(包括一些个人色彩不仅仅是纯笔记) #### 内容概览 本学习笔记旨在提供一份全面深入的Java教程,它不仅涵盖了Java的基础知识,还包括了作者个人的见解和实践经验。适合Java初学者、...
- **自定义动画**: 使用`animate()`函数可以创建自定义的动画效果,如改变宽度、高度、颜色等属性。 ### 3. AJAX - **$.ajax()**: 这是jQuery的核心AJAX方法,可以发送异步HTTP请求。例如: ```javascript $.ajax...
作为“良葛格Java学习笔记”,这个压缩包文件很可能是包含了一位学习者在Java编程语言学习过程中的积累和心得,旨在帮助初学者或自学者更好地理解和应用Java。 Java是一种广泛使用的面向对象的编程语言,由Sun ...
【标题】"myJavaEducation" 是一个与...这个压缩包对初学者和进阶者都是宝贵的资源,不仅可以自学Java,还可以作为复习和巩固知识的工具。通过这个库,学习者可以按照模块顺序逐步学习,同时实践编程,加深理解和记忆。