TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
一个简单的标签:helloTag
本实例将实现调用标签在JSP面中输出红色的字符:“hello!”。
(1)第一步:开发标签实现类。
helloTag.java
package hello;
import javax.Servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class helloTag extends TagSupport {
//----标签开始时调用此方法-------
public int doStartTag(){
try{
JspWriter out=pageContext.getOut();
out.print("标签开始了。<font color="red">hello!</font>");
}catch(Exception e){
System.out.println(e);
}
return EVAL_BODY_INCLUDE;
}
//----标签结束时调用此方法-------
public int doEndTag(){
try{
JspWriter out=pageContext.getOut();
out.print("标签结束了。");
}catch(Exception e){
System.out.println(e);
}
return EVAL_PAGE;
}
}
代码中为正确输出",对此字符用作了转义。 (2)第二步:编写标签描述tld文件,并将tld文件放于当前应用的/WEB-INF目录下。
myTag.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <!-- a tag library descriptor -->
<taglib>
<tlib-version>1.1</tlib-version>
<jsp-version>2.1</jsp-version>
<short-name>myTagLib</short-name>
<uri>/myTag</uri>
<tag>
<!-- 标签名称-->
<name>helloTag</name>
<!-- 标签对应的处理类-->
<tag-class>hello.helloTag</tag-class>
<!-- 标签体内容-->
<body-content>empty</body-content>
</tag>
</taglib> (3)第三步:在Web应用的web.xml文件中声明标签库引用。本应用中在<web-app>与</web-app>中增加的内容如下:
<taglib>
<taglib-uri>/myTag</taglib-uri>
<taglib-location>/WEB-INF/myTag.tld</taglib-location>
</taglib>
<taglib-uri>对应tld文件中的<uri>,<taglib-location>指出tld文件的位置。 (4)第四步:在JSP页面中声明并调用标签。
useHelloTag.jsp
<%@ taglib uri="/myTag" prefix="myTag" %>
<%@ page contentType="text/HTML;charset=GB2312" %>
<html>
<head>
<title>一个简单的自定义标签</title>
</head>
<body>
下面是应用这个简单的自定义标签的结果:<br>
<myTag:helloTag/>
</body>
</html>
源码下载:http://file.javaxxz.com/2014/10/2/085324906.zip |
|