Эта страница требует пространства имен XML, объявленного с префиксом br, но нет библиотеки тегов - PullRequest
3 голосов
/ 01 апреля 2010

Я только что закончил введение Netbeans в учебник Hibernate (http://netbeans.org/kb/docs/web/hibernate-webapp.html#01), и я получаю следующую ошибку: «Эта страница требует пространства имен XML, объявленного с префиксом br, но нет библиотеки тегов»

Теперь я видел похожий вопрос где-то еще: http://forums.sun.com/thread.jspa?threadID=5430327 но ответа там нет. Или, если это так, то я явно упускаю это - в первой строке моего файла index.xhtml читается "http://www.w3.org/1999/xhtml".. Это также не объясняет, почему при перезагрузке localhost: 8080 сообщение исчезает.

Вот мой файл index.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:f="http://java.sun.com/jsf/core">
    <ui:composition template="./template.xhtml">
        <ui:define name="body">
            <h:form>
                <h:commandLink action="#{filmController.previous}" value="Previous #{filmController.pageSize}" rendered="#{filmController.hasPreviousPage}"/>
                <h:commandLink action="#{filmController.next}" value="Next #{filmController.pageSize}" rendered="#{filmController.hasNextPage}"/>
                <h:dataTable value="#{filmController.filmTitles}" var="item" border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_odd_row,jsfcrud_even_row" rules="all" style="border:solid 1px">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Title"/>
                        </f:facet>
                        <h:outputText value="#{item.title}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Description"/>
                        </f:facet>
                        <h:outputText value="#{item.description}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value=" "/>
                        </f:facet>
                        <h:commandLink action="#{filmController.prepareView}" value="View"/>
                    </h:column>
                </h:dataTable>
                <br/>
                </h:form>
            </ui:define>
        </ui:composition>
    </html>

Ответы [ 2 ]

4 голосов
/ 01 апреля 2010

Проблема явно связана с тегом <br/>, и Facelets пытается интерпретировать его как тег JSF / Facelets с префиксом.

Если мы следуем стандартам, этот тег должен выглядеть следующим образом <br /> (с пробелом перед косой чертой). Попробуйте так, и если это не сработает, попробуйте удалить его.

3 голосов
/ 20 февраля 2014

Я опоздал на несколько лет, но я только что сделал то же учебное пособие по Hibernate, и столкнулся с точно такой же ошибкой. Однако я не думаю, что проблема связана с файлом index.xhtml. И хотя другой плакат прав, что теги разрыва должны иметь пробел, это изменение не предотвращает ошибку " На этой странице требуется пространство имен XML, объявленное с префиксом br, но нет библиотеки тегов "

Проблема заключается в другом файле xhtml в руководстве с именем browse.xhtml . Вы можете увидеть содержимое этого файла, используя ссылку на учебник во вступительном посте. Он содержит непревзойденный конечный тег и не ссылается на пространство имен http://www.w3.org/1999/xhtml.

Вставка содержимого этого файла в валидатор HTML (например, validator.w3.org) подчеркивает проблемы.

Решение, которое сработало для меня, заключалось в добавлении отсутствующего открывающего тега :

Либо удалите этот непревзойденный конечный тег и добавьте xmlns = "http://www.w3.org/1999/xhtml" на открывающий тег .

...