0

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

“警告:此页面调用以前缀样式声明的 XML 命名空间,但该命名空间不存在标记库。”

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

<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">

我花了几个小时在这上面,但我无法找出可能导致此问题的原因。

有没有人遇到过类似的?

4

1 回答 1

1

警告:此页面要求使用前缀样式声明的 XML 命名空间,但该命名空间不存在标记库。

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

另一个可能的原因是您style:在 XML 元素或属性中使用文字字符串,它指示 XML 命名空间前缀(就像h:标准 JSF 组件集的 XML 命名空间前缀和ice:ICEfaces 组件集的 XML 命名空间前缀一样)。

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

<someElement style:"bar">

代替

<someElement style="bar">

只需执行 Ctrl+Fstyle:并相应地修复。

于 2013-11-19T12:13:09.560 回答