美文网首页
解决JSP自定义标签TLD文件报错

解决JSP自定义标签TLD文件报错

作者: xiaoheng | 来源:发表于2017-03-03 13:20 被阅读532次

    项目里有自定义的JSP标签,但是在<tag>标签下面有个<description>的子标签报错,虽然运行不受影响,但是看着比较烦。网搜了一下不太好找到解决方案,就记录下这个小细节。

    报错内容
    cvc-complex-type.2.4.a: Invalid content was found starting with element 'description'. 
    One of '{
      "http://java.sun.com/xml/ns/j2ee":variable,
      "http://java.sun.com/xml/ns/j2ee":attribute,  
      "http://java.sun.com/xml/ns/j2ee":dynamic-attributes, 
      "http://java.sun.com/xml/ns/j2ee":example, 
      "http://java.sun.com/xml/ns/j2ee":tag-extension
    }' is expected.
    

    解决方案

    原文地址:https://www.genuitec.com/forums/topic/closed-taglib-parse-error-re-lt-variable-gt-tag/
    主要就是这一句:
    Your ordering is shot, your variable’s need to come before attribute and your desc neeed to come before your name-given:

    意思就是把<description>放在<name>之前一行。
    

    背景介绍

    项目里自定义标签这样写的(报错的写法):

    <?xml version="1.0" encoding="UTF-8"?>
    <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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
    
        <description>jsp tag</description>
        <tlib-version>1.0</tlib-version>
        <short-name>xiao-tag</short-name>
        <uri>http://www.xiao.com/jsptag/xiao</uri>
    
        <tag>
          <name>urlAuth</name>
          <tag-class>com.xiao.XXX</tag-class>
          <body-content>JSP</body-content>
          <!-- <description>这行会报错-->
          <!-- 正确写法:把<description>这行移动到<name>上一行 -->
          <description>URL控制</description>
          <attribute>
              <name>url</name>
              <required>true</required>
              <rtexprvalue>true</rtexprvalue>
              <type>java.lang.String</type>
          </attribute>
        </tag>
    
    </taglib>
    

    总结

    在解决的过程中,看到其他人也有遇到过类似的错误,不一定是一模一样的报错。 比如把<description>往上或者往下移动一行,错误就会变的。 比如头部的xsi:schemaLocation一定要写正确。 比如开头的<short-name>xiao-tag</short-name>也要写。 反正还是比较麻烦的,都是一些小问题。

    相关文章

      网友评论

          本文标题:解决JSP自定义标签TLD文件报错

          本文链接:https://www.haomeiwen.com/subject/jcakgttx.html