Не удается найти дескриптор библиотеки тегов для http://java.sun.com/jsf/facelets

у меня есть JSP с

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

однако это ошибки с

абсолютный uri:http://java.sun.com/jsf/facelets не может быть разрешен ни в одном из веб-сайтов.xml или файлы jar, развернутые с помощью этого приложения

у меня есть библиотеки facelets-lib.jar и jsf-facelets-1.1.10.jar, который, я полагаю, является Facelets, но они не содержат дескрипторов JSP taglib.

какой файл правильный?

2 ответов


Facelets предназначен для заменить JSP в целом. Но все же вы пытаетесь объявить его как JSP taglib. Это никогда не сработает. Оба являются различными технологиями просмотра. Facelets-это технология представления на основе XML, которая предназначена для преемника JSP. В Java EE 6, который был выпущен в декабре 2009 года, он уже заменил JSP в качестве стандартной технологии просмотра для JSF, и 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 банки в то время как Facelets 2.x уже вышел с 2009 года в составе С помощью JSF 2.реализация х. Если вы можете, я настоятельно рекомендую чтобы просто пропустить Facelets 1.x и продолжить с Facelets 2.x.

Читайте также:


Если вы используете JSF 2, вам понадобится jsf-api.jar и jsf-impl.jar.
Если вы используете JSF 1, Посмотрите на здесь