如何解决JSF 1.2和JSF 2.x之间的JSTL xmlns名称空间差异?
检查我们的JSTL Wiki页面每当您将鼠标悬停在jstl在您的问题下方标记,直到弹出黑框,然后单击信息链接。
的确,Facelets 1.x
和2.x
为JSTL标签库使用不同的名称空间。在Facelets 1.x
中,它或多或少是一个名称空间错误,并且已在Facelets 2.x中修复。
真正的JSTL 1.0 taglib使用URI http://java.sun.com/jstl/core。 真正的JSTL 1.1 / 1.2 taglib使用URI
http://java.sun.com/jsp/jstl/core
。
Facelets 1.x使用URI http://java.sun.com/jstl/core
。
Facelets 2.x使用URI http://java.sun.com/jsp/jstl/core
。
Facelets 2.2+使用URI http://xmlns.jcp.org/jsp/jstl/core
。
您可以在Facelets标记库文档中找到所有Facelets 2.x标记。Facelets并未将完整标签集设置为真正的JSTL taglib
。和中只有一部分<c:xxx>
和全部<fn:xxx>
被复制到Facelets中。的<fmt:xxx>
,<sql:xxx>
并且<xml:xxx>
标签不Facelets
的接管。
解决方法
我有一个基于JSF 1.2的webapp,从中复制了JSTL导入
xmlns:c="http://java.sun.com/jstl/core"
您也可以在Internet上的许多地方找到此导入。我不记得是否在我以前的Web项目上合作与否,在任何情况下,它不工作,我目前的JSF 2.0 Web应用基础。我从集装箱收到警告说:
警告:此页面需要使用前缀c声明的XML名称空间http://java.sun.com/jstl/core,但该名称空间不存在标记库。
然后,我将导入更改为
xmlns:c="http://java.sun.com/jsp/jstl/core"
…这消除了<c:forEach>
在基于JSF / RichFaces
的Webapp
中使用的所有头痛问题。
这有什么窍门?从JSF 1.2到2.x的JSTL导入URL进行了任何更改吗?还是前一行通常是错误的(在JSF中)?两者有什么区别?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。