首页 文章

jsp中的Taglib没有运行

提问于
浏览
1

我正在使用netBeans和glassFish Server 4.1.1

<%@ taglib uri="index.html" prefix="mytag" %>  
<html>  
<body> 

<mytag:currentDate/>  

</body>  
</html>

我得到这样的错误..

org.xml.sax.SAXParseException; lineNumber:12; columnNumber:7;元素类型“meta”必须由匹配的结束标记“”终止 . at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1750) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2970)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java: 606)在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)at at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)at at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)at at Org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:298)位于org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD的org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:351) TagLibraryInfoImpl.java:340)org.apache.jasper.compiler.TagLibraryInfoImpl . (TagLibraryInfoImpl.java:254)org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:502)at org位于org.apache.jarsper.compars.Parser.parse的org.apache.jasper.compiler.Parser.parseElements(Parser.java:1657)中的.apache.jasper.compiler.Parser.parseDirective(Parser.java:582)(Parser .java:185)atg.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)org.apache.jasper.compars.ParserController.parse(ParserController.java:145)atg.apache.jasper . 编译器.Compiler.generateJava(Compiler.java:212)org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)org.apache.jasper.JspC.processFile(JspC.java:1171)org位于org.netbeans.modules.web.project.ant的org.netbeans.modules.web.project.ant.JspC.main(JspC.java:101)的.apache.jasper.JspC.execute(JspC.java:1338) .jCSCSingle.main(JspCSingle.java:119)org.apache.jasper.JasperException:file:C:/Users/Queue/OneDrive/JspExE/build/web/WEB-INF/tlb.jsp(1,44)PWC6178:文件/WEB-INF/index.html上的XML解析错误:(第12行,第7行)org.apache.jasper.JasperException:C:/ Users / Queue / OneDrive / JspExE / build / web / WEB-INF / tlb .jsp(1,44)org.apache.jasper.JasperException:file:C:/Users/Queue/OneDrive/JspExE/build/web/WEB-INF/tlb.jsp(4,44)PWC6178:XML解析错误文件C:\ Users \ Queue \ OneDrive \ JspExE \ nbproject \ build-impl.xml:936:Java返回:1 BUILD FAILED(总时间:1秒)

1 回答

  • 0

    文件 index.html 是一个html文件 . 您不能在 taglib 指令的URI属性中使用HTML而不是TLD .

    来自java tutorial

    uri属性是指唯一标识标记库描述符(TLD)的URI,这是一个描述标记库的文档(请参阅标记库描述符) . 标记库描述符文件名必须具有扩展名.tld . TLD文件存储在WAR文件的WEB-INF目录或子目录中,或存储在JAR中打包的标记库的META-INF目录或子目录中 . 您可以直接或间接引用TLD . 以下taglib指令直接引用TLD文件名:<%@ taglib prefix =“tlt”uri =“/ WEB-INF / iterator.tld”%>
    此taglib指令使用短逻辑名称间接引用TLD:<%@ taglib prefix =“tlt”uri =“/ tlt”%>
    嵌套在jsp-config元素中的是taglib元素,它提供有关应用程序页面使用的标记库的信息 . taglib元素内部是taglib-uri元素和taglib-location元素 . taglib-uri元素标识标记库的逻辑名称 . taglib-location元素给出标记库的绝对位置或绝对URI . JSTL库的绝对URI如下:核心:http://java.sun.com/jsp/jstl/core

    XML:http://java.sun.com/jsp/jstl/xml

    国际化:http://java.sun.com/jsp/jstl/fmt

    SQL:http://java.sun.com/jsp/jstl/sql

    功能:http://java.sun.com/jsp/jstl/functions
    当您使用与TLD的taglib元素中声明的URI完全匹配的绝对URI引用标记库时(请参阅标记库描述符),您不必将taglib元素添加到web.xml; JSP容器自动在JSTL库实现中定位TLD . 包括标记库实现除了声明标记库之外,还必须使标记库实现可用于Web应用程序 . 有几种方法可以做到这一点 . 标记库实现可以以解包格式包含在WAR中:标记文件打包在/ WEB-INF / tag /目录中,标记处理程序类打包在WAR的/ WEB-INF / classes /目录中 . 已打包到JAR文件中的标记库包含在WAR的/ WEB-INF / lib /目录中 . 最后,应用程序服务器可以将标记库加载到服务器上运行的所有Web应用程序中 . 例如,在Application Server中,JSTL TLD和库在as-install / lib /中的归档appserv-jstl.jar中分发 . 此库会自动加载到Application Server上运行的所有Web应用程序的类路径中,因此您无需将其添加到Web应用程序中 .

相关问题