Предупреждение. Эта страница требует пространства имен XML http://xmlns.jcp.org/jsf/XXX с префиксом XXX, но для этого пространства имен не существует taglibrary
Я использую Netbeans 8.02, который, кажется, понимает составной компонент, который мне помог создать. Он находится в папке /resources/ezcomp (по умолчанию используется Nebeans) и выглядит следующим образом:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://xmlns.jcp.org/jsf/composite"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="pobject"
type="test.database.UserItem"
required="true" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
...
Когда я редактирую страницу для использования этого компонента, NetBeans имеет его в базе данных завершения кода и создает ссылку xmlns на странице, которая выглядит следующим образом.
xmlns:ezcomp="http://xmlns.jcp.org/jsf/composite/ezcomp"
Проблема заключается в том, когда Mojarra 2.1.6 (Glassfish 3) сталкивается с этим, он выдает сообщение:
Warning: This page calls for XML namespace
http://xmlns.jcp.org/jsf/composite/ezcomp declared with
prefix ezcomp but no taglibrary exists for that namespace.
В прошлый раз, когда я делал это, URL был java.sun.com, поэтому я думаю, что индустрия переехала, пока меня не было. Если я изменил URL-адрес на использование java.sun.com, он превратится в исключение Null-указателя.
У кого-нибудь есть идеи, как это исправить?
Ответы
Ответ 1
Пространство имен http://xmlns.jcp.org/jsf/*
является новым, поскольку JSF 2.2. Эти предупреждения предполагают, что вы используете JSF 2.0/2.1 или настроили свой проект на использование JSF 2.0/2.1.
Если вы не используете/настраиваете JSF 2.2, вам не следует использовать пространство имен, созданное JSF 2.2. В JSF 2.0/2.1 пространство имен XML равно http://java.sun.com/jsf/*
, как показано ниже.
<html 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"
xmlns:cc="http://java.sun.com/jsf/composite"
>
Если вы уверены, что используете JSF 2.2, вам нужно настроить целевую версию JSF где-нибудь в свойствах проекта. В Eclipse вы можете найти его в Project Facets. На приведенном ниже рисунке показана версия 2.0. Затем вы должны изменить это на 2.2.
Если вы не можете выбрать JSF 2.2, то самой IDE, скорее всего, потребуется обновление. В случае Eclipse поддержка JSF 2.2 была добавлена в WTP 3.5, которая впервые появилась в Eclipse 4.4 Luna.
См. также: