【问题标题】:"This page calls for XML namespace declared with prefix p but no taglibrary exists for that namespace."“此页面要求使用前缀 p 声明的 XML 命名空间,但该命名空间不存在标记库。”
【发布时间】:2014-08-18 21:39:16
【问题描述】:

当使用<p:messages><h:messages> 时,我收到以下警告:

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

我知道这只是一个警告,但在开发模式下工作时仍然有点烦人。

有没有办法解决这个问题?

使用:WebLogic 12c 和 primefaces 5

【问题讨论】:

  • 我认为这只是您 IDE 中的一个警告?

标签: jsf primefaces facelets


【解决方案1】:

如果您没有为 HTML 声明默认的 XML 命名空间,这也可以来自 <p>

例如

<ui:composition
    xmlns:p="http://primefaces.org.ui"
>
    <p><p:messages/></p>
</ui:composition>

会产生这个警告。

您需要为 HTML 添加默认的 XML 命名空间。

<ui:composition 
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:p="http://primefaces.org.ui"
>
    <p><p:messages/></p>
</ui:composition>

这也完全解释了为什么您在使用 &lt;h:messages&gt; 时仍然收到消息。

【讨论】:

  • 看起来原因是因为在我的主模板中有
    &

    标签的

  • 我知道。答案涵盖了这一点。现在还有什么不清楚的吗?如果将那些 &lt;div&gt;s 放在 &lt;p&gt;s 前面,您会在错误消息中得到“带前缀 div”,这可能更强烈地暗示缺少纯 HTML 元素的默认 XML 命名空间。跨度>
猜你喜欢
相关资源
最近更新 更多
热门标签