mytags.tld
<?xml version="1.0" encoding="ISO-8859-1"?> <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" verson="2.0"> <description>Simple tag examples</description> <tlib-version>1.0</tlib-version> <jspversion>2.3</jspversion> <short-name>My First Taglib Example</short-name> <tag> <name>firstTag</name> <tag-class>tag.MyFirstTag</tag-class> <body-content>empty</body-content> </tag> </taglib>如果要使标签里面有内容 里面的值应该为scriptless 使用标签 jsp文件:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="/WEB-INF/mytags.tld" prefix="easy" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>First Tag</title> </head> <body> Hello! <easy:firstTag></easy:firstTag> </body> </html>访问页面:
控制台输出:
在调用jsp页面时,JSP会调用标签处理器的setJspContext方法。由于标签中没有主体内容,jsp不会在调用doTag方法之前调用setJspBody方法。JSP容器也没有调用setParent方法,因为该标签没有嵌套在另一个标签里面。
type Exception report message Mandatory TLD element jsp-version missing or empty in TLD /WEB-INF/funcation.tld description The server encountered an internal error that prevented it from fulfilling this request.
在tld文件中,设置的jsp版本不正确 在tomcat的lib中找到jsp-api.jar。 查看里面的META-INF/MANIFEST.MF 标记部分就是jsp的版本。查看servlet的版本也一样(servlet-api.jar中)