警告:此页面调用使用前缀样式声明的XML名称空间,但该名称空间不存在taglibrary

时间:2013-11-19 12:09:54

标签: jsf-2 facelets xml-namespaces icefaces-3

我正在将一个Web应用程序从icefaces 1.8升级到Icefaces 3.x,从jsf 1.2升级到jsf 2.每当我打开现有弹出窗口时,我会收到:

  

“警告:此页面调用使用前缀样式声明的XML名称空间   但该命名空间不存在taglibrary。“

当然,这是通过以下方式显示的:

<ice:messages
    globalOnly="true"
    styleClass="graRequired" />

这些是我使用的命名空间:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ice="http://www.icesoft.com/icefaces/component"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:gra="http://www.gravitant.com/components">

我花了几个小时的时间,我无法找出导致这个问题的原因。

有没有人见过类似的东西?

1 个答案:

答案 0 :(得分:1)

  

警告:此页面调用使用前缀样式声明的XML名称空间,但该名称空间不存在taglibrary。

当您使用纯HTML <style>元素而未将默认XML命名空间声明为xmlns="http://www.w3.org/1999/xhtml"时,可能会发生这种情况。但这不太可能,因为您已经在问题的<ui:composition>代码段中声明了它。

另一个可能的原因是你在XML元素或属性中使用文字字符串style:,它表示XML名称空间前缀(如h:是标准JSF组件集的XML名称空间前缀ice:是ICEfaces组件集的。{

鉴于您没有明确声明这样的XML命名空间,并且“样式”可以被识别为标准HTML元素属性,这反过来强烈暗示您在XHTML文件中的某处意外使用了以下内容:

<someElement style:"bar">

而不是

<someElement style="bar">

只需在style:上执行Ctrl + F并相应修复。