代码之家  ›  专栏  ›  技术社区  ›  cwallenpoole

此页调用以前缀BR声明的XML命名空间,但不存在标记库

  •  3
  • cwallenpoole  · 技术社区  · 14 年前

    我刚刚完成了netbeans介绍hibernate的教程( http://netbeans.org/kb/docs/web/hibernate-webapp.html#01 )我得到以下错误: “此页调用用前缀BR声明的XML命名空间,但不存在标记库”

    现在,我在别的地方看到了一个类似的问题: 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 回复  |  直到 10 年前
        1
  •  4
  •   Bozho    14 年前

    问题显然来自 <br/> 标签,facelets试图将其解释为带有前缀的jsf/facelets标签。

    如果我们遵循标准,这个标签应该是这样的 <br /> (斜线前有空格)。这样试试,如果不起作用,试着把它取下来。

        2
  •  3
  •   skomisa    10 年前

    我晚了几年,但是我刚刚完成了相同的hibernate教程,并且面临着完全相同的错误。但是,我不认为这个问题与index.xhtml文件有关。虽然另一张海报是正确的,打破标签应该有一个空间,但这种改变并不能防止错误。” 此页调用以前缀BR声明的XML命名空间,但不存在标记库

    问题在于教程中名为 小精灵 . 您可以使用开场白中的教程链接查看该文件的内容。它包含一个不匹配的尾随标记,并且没有对 http://www.w3.org/1999/xhtml 命名空间。

    将该文件的内容粘贴到html验证器(例如validator.w3.org)中会突出显示问题。

    解决方法是添加缺少的开头标记:

    <html xmlns=“http://www.w3.org/1999/xhtml”>

    或者,删除不匹配的尾随标记,然后添加 xmlns=“http://www.w3.org/1999/xhtml” 打开“ui:composition”标记。