我正在将一个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">
我花了几个小时的时间,我无法找出导致这个问题的原因。
有没有人见过类似的东西?
答案 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并相应修复。