1、配置web.xml文件,增加自定义标签支持
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
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-app_2_4.xsd">
<display-name>jstlfunc</display-name>
<jsp-config>
<taglib>
<taglib-uri>/tlds/helloworld</taglib-uri>
<taglib-location>tlds/xiaobai.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
2创建标签库tld文件 tlds\xiaobai.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><!-- 这个标签库要求的JSP规范版本 -->
<short-name>myfirsttag</short-name><!-- JSP页面编写工具可以用来创建助记名的可选名字 -->
<tag>
<name>gougou</name><!-- 唯一标签名 -->
<tag-class>com.byd.xiaobai</tag-class><!-- 标签xiaobai类的完全限定名 -->
<body-content>empty</body-content><!-- 正文内容类型 -->
</tag>
</taglib>
33、创建标签处理程序类 xiaobai
package com.byd;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* TagSupport与BodyTagSupport的区别:
* 主要看标签处理类是否要读取标签体的内容和改变标签体返回的内容,如果不需要就用TagSupport,否则就用BodyTagSupport
* 用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSupport
*/
public class xiaobai extends TagSupport {
private static final long serialVersionUID = 3174234039143531070L;
@Override
public int doStartTag() throws JspException {//这个方法不用所以直接返回值
return EVAL_BODY_INCLUDE;
}
@Override
public int doEndTag() throws JspException {//重点在这个方法上
try {
pageContext.getOut().write("赚钱给老虎卖肉吃");//标签的返回值
} catch (IOException ex) {
throw new JspTagException("错误");
}
return EVAL_PAGE;
}
}
最终测试页面 hello.jsp
Java代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/tld/helloworld" prefix="mytag"%><!-- 在页面中加以声明 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MyJSP</title>
</head>
<body>
<h1>自定义标签:</h1><br>
<myfirsttag:gougou></myfirsttag:gougou>
</body>
就这样就做完了,赚钱给老虎卖肉吃!!!
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
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-app_2_4.xsd">
<display-name>jstlfunc</display-name>
<jsp-config>
<taglib>
<taglib-uri>/tlds/helloworld</taglib-uri>
<taglib-location>tlds/xiaobai.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
2创建标签库tld文件 tlds\xiaobai.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><!-- 这个标签库要求的JSP规范版本 -->
<short-name>myfirsttag</short-name><!-- JSP页面编写工具可以用来创建助记名的可选名字 -->
<tag>
<name>gougou</name><!-- 唯一标签名 -->
<tag-class>com.byd.xiaobai</tag-class><!-- 标签xiaobai类的完全限定名 -->
<body-content>empty</body-content><!-- 正文内容类型 -->
</tag>
</taglib>
33、创建标签处理程序类 xiaobai
package com.byd;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* TagSupport与BodyTagSupport的区别:
* 主要看标签处理类是否要读取标签体的内容和改变标签体返回的内容,如果不需要就用TagSupport,否则就用BodyTagSupport
* 用TagSupport实现的标签,都可以用BodyTagSupport来实现,因为BodyTagSupport继承了TagSupport
*/
public class xiaobai extends TagSupport {
private static final long serialVersionUID = 3174234039143531070L;
@Override
public int doStartTag() throws JspException {//这个方法不用所以直接返回值
return EVAL_BODY_INCLUDE;
}
@Override
public int doEndTag() throws JspException {//重点在这个方法上
try {
pageContext.getOut().write("赚钱给老虎卖肉吃");//标签的返回值
} catch (IOException ex) {
throw new JspTagException("错误");
}
return EVAL_PAGE;
}
}
最终测试页面 hello.jsp
Java代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/tld/helloworld" prefix="mytag"%><!-- 在页面中加以声明 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MyJSP</title>
</head>
<body>
<h1>自定义标签:</h1><br>
<myfirsttag:gougou></myfirsttag:gougou>
</body>
就这样就做完了,赚钱给老虎卖肉吃!!!
2131

被折叠的 条评论
为什么被折叠?



