web-dev-qa-db-ja.com

http://Java.Sun.com/jsf/faceletsのタグライブラリ記述子が見つかりません

私はJSPを持っています

<%@taglib uri="http://Java.Sun.com/jsf/facelets" prefix="ui" %>

ただし、エラーが発生します

絶対URI: http://Java.Sun.com/jsf/facelets このアプリケーションでデプロイされたweb.xmlまたはjarファイルでは解決できません

私は図書館を持っていますfacelets-lib.jarおよびjsf-facelets-1.1.10.jar、これはFaceletsだと思いますが、JSPtaglib記述子は含まれていません。

どのファイルが正しいですか?

13
Lorenzo Manucci

Faceletsは、JSP全体をreplaceすることを目的としています。しかし、それでもあなたはそれをJSPtaglibとして宣言しようとしています。これは決してうまくいきません。どちらも別個のビューテクノロジーです。 Faceletsは、JSPの後継となるように設計されたXMLベースのビューテクノロジです。 2009年12月にリリースされたJava EE 6)では、JSFの標準ビューテクノロジとしてすでにJSPに取って代わり、JSPは非推奨になりました。

ファイル拡張子の名前を.jspから.xhtmlに変更し、すべてのJSP taglib宣言をXML名前空間宣言に置き換え、すべての<jsp:xxx>タグとすべての<% %>スクリプトレットを削除する必要があります。

したがって、たとえば、次の基本的な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実装 の一部としてすでにリリースされています。可能であれば、Facelets 1.xをスキップして、Facelets2.xを続行することを強くお勧めします。

参照:

20
BalusC

JSF 2を使用している場合は、jsf-api.jarjsf-impl.jarが必要になります。
JSF 1を使用している場合は、 ここ を参照してください。

3
bliof