Facelets旨在完全 替代 JSP。但是,您正在尝试将其声明为JSP
taglib。这永远不会起作用。两者都是独特的视图技术。Facelets是一种基于XML的视图技术,旨在替代JSP。在2009年12月发布的Java EE
6中,它已取代JSP作为JSF的标准视图技术,此后不推荐使用JSP。
您需要将文件扩展名从重新命名为
.jsp,
.xhtml并用XML名称空间声明替换所有JSP
taglib声明,并删除所有
<jsp:xxx>标记和所有
<% %>scriptlet。
因此,例如下面的基本JSP模板
page.jsp
<%@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> <title>JSP page</title> </head> <body> <h:outputText value="JSF components here." /> </body> </html></f:view>
必须重写为
page.xhtml
<!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> <title>Facelet page</title> </head> <body> <h:outputText value="JSF components here." /> </body> </html>
最后,提到的JAR文件是Facelets 1.x JAR,而Facelets 2.x自2009年以来就已经作为JSF
2.x实现的一部分发布了。如果可以,我强烈建议您跳过Facelets1.x并继续使用Facelets2.x。



