Can not find the tag library descriptor for http://java.sun.com/jsf/facelets
我有一个JSP
1 | <%@taglib uri="http://java.sun.com/jsf/facelets" prefix="ui" %> |
但是它错误
The absolute uri: http://java.sun.com/jsf/facelets cannot be resolved in either web.xml or the jar files deployed with this application
我有库
哪个文件正确?
Facelets旨在完全替代JSP。但是,您正在尝试将其声明为JSP taglib。这永远不会起作用。两者都是独特的视图技术。 Facelets是一种基于XML的视图技术,旨在替代JSP。在2009年12月发布的Java EE 6中,它已经取代了JSP,成为JSF的标准视图技术,此后不推荐使用JSP。
您需要将文件扩展名从
因此,例如,以下基本JSP模板
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <!DOCTYPE html> <f:view> <html lang="en"> <head> JSP page </head> <body> <h:outputText value="JSF components here." /> </body> </html> </f:view> |
必须重写为
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <head> Facelet page </head> <body> <h:outputText value="JSF components here." /> </body> </html> |
最后,提到的JAR文件是Facelets 1.x JAR,而Facelets 2.x自2009年以来就已经作为JSF 2.x实现的一部分发布了。如果可以,我强烈建议您跳过Facelets 1.x并继续使用Facelets2.x。
也可以看看:
- Facelets开发人员文档(适用于Facelets 1.x)
- Java EE 6教程-Facelets(适用于Facelets 2.x)
- 带有Eclipse和Glassfish的JSF 2.0教程(从零开始)
- 从JSF 1.2迁移到JSF 2.0
如果使用的是JSF 2,则需要
如果您使用的是JSF 1,请在此处查看