Подтвердить что ты не робот

Невозможно найти дескриптор библиотеки тегов для 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, но они не содержат дескрипторов taglib JSP.

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

4b9b3361

Ответ 1

Лицевые стороны намерены полностью заменить JSP. Но вы пытаетесь объявить его как тег-лист JSP. Это никогда не сработает. Оба представляют собой различные технологии просмотра. Facelets - это технология просмотра на основе XML, которая призвана стать преемником JSP. В Java EE 6, который был выпущен в декабре 2009 года, он уже заменил JSP как стандартную технологию просмотра JSF, и JSP с тех пор устарел.

Вам нужно переименовать расширение файла из .jsp в .xhtml и заменить все объявления JLTML-тегов на объявления пространства имен 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 и продолжить с Facelets 2.x.

См. также:

Ответ 2

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