Tag Validator Class:Validator.java tag validator 类具有一个重要的方法 validate。当容器遇到一个在 Tag Library Descriptor 文件中具有相关验证器类定义的标记时,由容器调用此方法。PageData 类作为一项参数由容器传递到此方法。PageData 实例可用于重新创建整个 JSP XML 视图(转换的 JSP 文档的 XML 表示)。当 XML 文档对象创建以后,正常的 DOM API 可用于处理和验证 XML 文档。这样,标记库的创作者完全控制了验证 JSP 页的方法。
定义标记库描述符
标记库描述符:howtotlv.tld
<?xml version = '1.0' encoding = 'windows-1252'?> <!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>howtotlv</short-name> <uri>http://xmlns.oracle.com/j2ee/jsp/tld/demos/howtotlv.tld</uri> <description> This tag library descriptor uses a Validator class to enforce following rules 1. "child" tag must be enclosed in parent tag 2. "parent" tag must have an attribute "age" with value between 1 to 100 3. Text contained in "child" node must not have a string "EXPERIMENT" </description> <validator> <validator-class>howtotlv.Validator</validator-class> </validator> <tag> <name>parent</name> <tag-class>howtotlv.TagParent</tag-class> <body-content>JSP</body-content> <attribute> <name>name</name> <required>required</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <name>age</name>
<required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>child</name> <tag-class>howtotlv.TagChild</tag-class> <body-content>JSP</body-content> <attribute> <name>name</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>